假设char * abc = *****;那么abc[0]的数据类型是什么

如题所示  今天突然遇到这个问题 只能用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