c语言中 关于字符数组 char[ ]={1,2,3,4}; 此语句是否是正确的数组说明语句

2025-02-01 13:50:58
推荐回答(3个)
回答1:

你这题是否在[]前丢了个变量名,比如c?如果是的话就应该表达为char c[]={1,2,3,4}; 若是这样的话,说点本人的看法:这和你理解的是不一样的。虽然char c[]={1,2,3,4}; 没有说明方面的错误,也能正常编译,这是由于C/C++中字符型变量与整形变量是可以通用的。但达不到你说的“不用加引号了”的效果。char c[]只是说明c是字符型数组变量,说明白点就是单字节数组;至于你在说明时赋什么值那就要看等号右边的大括号里怎么写。你这种写法的结果是:c[0]=00000001、c[1]=00000010、c[2]=00000011、c[3]=00000100,而并非c[0]=00110001、c[1]=00110010、c[2]=00110011、c[3]=00110100。你可以作试验:用printf()函数输出,当用控制符"%c“时是打不出1234来的,当你用"%d“控制符时就打出1234来了,说明初始化的是整型值。而如果你这样赋值:char c[]={‘1’,‘2’,‘3’,‘4’}; 结果就是c[0]=00110001、c[1]=00110010、c[2]=00110011、c[3]=00110100,用"%c“控制就能打出1234来了;再用"%d“控制,输出的则是它们对应的ASCII值49、50、51、52。

回答2:

是的

回答3:

是的。