如题所示 今天突然遇到这个问题 只能用printf("%d",abc[0]);打印
这说明他是一个int类型的数据吗
但是想不通啊
请各位老师赐教
谢谢!
char *abc = "China";
C语言中编译器会给字符串常量分配地址,如果 "China", 存储在内存中的 0x3000 0x3001 0x3002 0x3003 0x3004 0x3005 。其实真正的意义是 abc ="China" = 0x3000;你把China 看作是字符串,但是编译器把它看作是地址 0x3000,即字符串常量的本质表现是代表它的第一个字符的地址,abc = 0x3000。
得用printf("%c",abc[0])啊
abc[0]就是char类型啊,用%d也能打,但输出的ASCII码,不是对应的字符。
比如abc[0]='A'
用printf("%d",abc[0])打出来是65
用printf("%c",abc[0])打出来是A
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632