"初始化从指针生成整数而没有强制转换"数组初始化渐渐消失

时间:2015-05-29 16:14:54

标签: c arrays pointers char compiler-warnings

我现在开始学习C.我想知道为什么我会收到警告。我声明了一个二维char数组,但为什么不允许使用"d"字符?

char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};

2 个答案:

答案 0 :(得分:0)

将“d”替换为“d”

'd'是一个字符

“d”是一个字符串

答案 1 :(得分:0)

TL; DR - "d"不是字符,而是字符串'd'是一个角色。

为了详细说明,我们使用单引号''来表示char。它表示char。该值为int类型。

OTOH,双引号" "用于表示字符串。它重新构建字符串的基址。那是一个指针。

在您的代码中,您使用"d"来返回指向字符串文字的指针,以初始化char变量,该变量需要类型为{{ 1}}。因此警告。