69,368
社区成员
发帖
与我相关
我的任务
分享
char *t1="str";//编译器支持:将t1的值初始化为常量字符串"str"的起始地址
char t2[5]="str";//编译器不支持:将常量字符串"str"的内容复制一份到&t2[0]开始处
我猜。
char src[] = "hello";
int i = 0;
while (src[i] != 0) /*也可以直接while (src[i])*/
i++;
估计你的编译器不是支持C99的, C99标准支持这样的结构体的初始化。如果不支持,建议你一个个的赋值,或者先这样初始化struct Stu a = { 0 };
初始化字符数组,如果输出用%s,初始化最后必须主动加\0,结构体和共用体应该都这样,但是你用四个字符初始化5数量的数组,为什么能成功就不知道了(新手,水平有限)
struct Stu a = { 0 };
结构体可以对某个变量赋值,用{.变量名=值...}就行,共用体是共用一个地址,只需要初始化一个即可,