char name[20];name为字符数组,name的值不可变,只能在定义时使用char name[20]="aaa";或者逐个字符赋值name[0]='a';name[1]='a';name[2]='a';或者使用字符串处理函数

char *name;name为字符指针型,boy1.name="aaa";的意思是将字符串“aaa”的首字符地址赋值给boy1.name

这种问题最好把代码粘贴出来,不要给图片。

另外你printf("%c",boy1.name);打印的是字符串指针name的低位字节,如name=0x7f6cd0,打印的是ascii码0xd0。

%c改成%s才是打印name指向的字符串。

char是字符类型,变量只能装一个字符,要用字符数组

相关推荐