【发布时间】:2015-05-29 16:14:54
【问题描述】:
我现在开始学习 C。我想知道为什么会收到警告。我声明了一个二维char数组,为什么"d"这个字符是不允许的?
char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};
【问题讨论】:
-
"d"应该是'd'一个字符而不是字符串。
标签: c arrays pointers char compiler-warnings
我现在开始学习 C。我想知道为什么会收到警告。我声明了一个二维char数组,为什么"d"这个字符是不允许的?
char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};
【问题讨论】:
"d" 应该是 'd' 一个字符而不是字符串。
标签: c arrays pointers char compiler-warnings
将“d”替换为“d”
'd' 是一个字符
“d”是一个字符串
【讨论】:
TL;DR -- "d" 不是一个字符,它是一个字符串。 'd' 是一个字符。
为了详细说明,我们使用单引号'' 来表示char。它代表char 的值。该值为int 类型。
OTOH,双引号" " 用于表示字符串。它返回 string 的基地址。那是一个指针。
在您的代码中,您使用了"d"(它返回一个指向字符串文字的指针)来初始化一个char 变量,该变量需要一个int 类型的值。因此发出警告。
【讨论】: