对数组进行初始化char stu[]={
发布网友
发布时间:2022-05-31 11:46
我来回答
共1个回答
热心网友
时间:2023-10-14 09:51
不同的编译器可能有点不一样。在c++中,这样赋值长度是不一定是一样的。比如使用strlen去获取两者的长度,前者是不一定的,因为没有结束符,在计算长度的时候是从开始地址开始,直到结束‘\0’为止的个数。
后者是字符串,会自动加上结束符,后者的长度肯定是7。前者的长度可能是7,也可能是别的,比如11等,主要看刚好后面是啥,是不一定的。
如果char stu[]在‘t’后面再加上'\0'的话长度就肯定是7了。
给你段代码,可以测试一下:
void main()
{
char stu[]={'s','t','u','d','e','n','t','\0'};
char barr[]="student";
int i=strlen(stu);
int x=strlen(barr);
printf("i=%d,x=%d",i,x);
}