我的两行代码收到以下警告。
initialization discards qualifiers from pointer target type
这两行是警告的来源。
function (const char *input) {
char *str1 = input;
char *str2 = "Hello World\0";
}
我认为第一行会出错,因为我尝试将const char *赋给char *。我该如何解决这个问题?
答案 0 :(得分:2)
你需要声明它为const:
const char *str1 = input;
答案 1 :(得分:1)
void function (const char *input) {
char *str1 = input;
char *str2 = "Hello World\0";
}
在C中,char *
类型的对象无法使用const char *
类型的对象进行初始化。
你改为:
const char *str1 = input;
此外,像"Hello World"
这样的字符串文字已经空终止,不需要自己添加空字符,而是执行此操作:
char *str2 = "Hello World";