![C语言语句“char c[5]”是什么意思?,第1张 C语言语句“char c[5]”是什么意思?,第1张](/aiimages/C%E8%AF%AD%E8%A8%80%E8%AF%AD%E5%8F%A5%E2%80%9Cchar+c%5B5%5D%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
所以char
c[5]="hello"
缺少结束符,但是调用c[0]~c[4]是可以正常使用的,但是使用strlen(c)、strcpy等时会出现错误,因为找不到结束标志。
char
c[6]="hello可以正常使用,因为有结束符'\0',c[5]='\0'
"54321" 是字符串,含字符串结束符"\0",需要6个单元存放,声明为[5],不足,改 char[][6] 便可。如果编译器允许 char c[][5]={"1","54321"}
而且,运行中,不使用字符串方式,只使用字符变量方式,则没问题。如果使用字符串,涉及到结尾符时就有麻烦。
程序例子:
#include <stdio.h>
#include <stdlib.h>
main()
{
char c[][5]={"1","54321"}
int i,j
for (j=0j<2j++)
for (i=0i<5i++)
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@
最后多了个@符号。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)