#include <stdio.h>
#include <string.h>
void main()
{
int i=0;
char a[12]={'a',' ','b','o','o','k','!'};
printf("%d\n",strlen(a));
while(a[i]!='\0')
printf("%c",a[i++]);
}
//上面为代码
问题是:
①为什么字符数组a的长度输出为7,而不是12?
②我一个一个字符赋值,不是应该不会自动加'\0'字符吗?
③是不是因为编译器的原因?
用strlen()函数返回的是字符数组中实有的字符个数,且不包括'\0'<,算法是从第一个字符开始计数,直到'\0'。而关键字sizeof发挥的是字符数组实际的存储空间个数,单位是sizeof(数据类型)。
#include <stdio.h>