"initialization makes integer from pointer without a cast" 阵列初始化逐渐减弱
"initialization makes integer from pointer without a cast" waning in array initialization
我现在开始学习C,我想知道为什么会收到警告。我声明了一个二维字符数组,但是为什么字符"d"
不被允许?
char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};
将"d"替换为'd'
'd'是一个字符
"d" 是一个字符串
TL;DR -- "d"
不是一个字符,它是一个 字符串。 'd'
是一个字符。
为了详细说明,我们使用单引号''
来表示一个char
。它表示 char
的 值 。该值是 int
类型。
OTOH,双引号 " "
用于表示字符串。它返回 字符串 的基地址。那是一个指针。
在您的代码中,您使用了 "d"
,其中 returns 指向 字符串文字 的指针来初始化 char
变量,它需要 int
类型的值。因此警告。
我现在开始学习C,我想知道为什么会收到警告。我声明了一个二维字符数组,但是为什么字符"d"
不被允许?
char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};
将"d"替换为'd'
'd'是一个字符
"d" 是一个字符串
TL;DR -- "d"
不是一个字符,它是一个 字符串。 'd'
是一个字符。
为了详细说明,我们使用单引号''
来表示一个char
。它表示 char
的 值 。该值是 int
类型。
OTOH,双引号 " "
用于表示字符串。它返回 字符串 的基地址。那是一个指针。
在您的代码中,您使用了 "d"
,其中 returns 指向 字符串文字 的指针来初始化 char
变量,它需要 int
类型的值。因此警告。