C语言小白求助,在线等大佬帮忙
问题描述:
请问下这代码哪里有错误,还有就是name为什么一定要是指针型
答
char name;name为字符型,只能存一个字符如boy1.name='A';
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是字符类型,变量只能装一个字符,要用字符数组