C语言语句 char c[][5]={"1","54321"}; 的错误在哪里

2020-10-05 科技 82阅读
"54321" 是字符串,含字符串结束符"\0",需要6个单元存放,声明为[5],不足,改 char[][6] 便可。
如果编译器允许 char c[][5]={"1","54321"};
而且,运行中,不使用字符串方式,只使用字符变量方式,则没问题。如果使用字符串,涉及到结尾符时就有麻烦。
程序例子:
#include
#include
main()
{
char c[][5]={"1","54321"};
int i,j;
for (j=0;j<2;j++)
for (i=0;i<5;i++)
printf("%c ",c[j][i]);
printf("\n===========\n"); // 以上没问题
printf("%s %s\n",c[0],c[1]); // 这个 c[1] 输出有问题
return 0;
}
MS VC++ 6.0 输出为:
1 5 4 3 2 1
===========
1 54321@
最后多了个@符号。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com