在C中,字符串给出了关于初始化丢弃限定符的警告

时间:2012-01-26 22:59:16

标签: c

我的两行代码收到以下警告。

initialization discards qualifiers from pointer target type

这两行是警告的来源。

function (const char *input) {
  char *str1 = input;
  char *str2 = "Hello World\0";
}

我认为第一行会出错,因为我尝试将const char *赋给char *。我该如何解决这个问题?

2 个答案:

答案 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";