11智能在线
新记
*p="abc"; printf("%c",*p+2); 输出为什么是c .?
如题所述
举报该文章
相关建议 2019-10-21
C语言优先级,*高于+,因此先执行*p, *p的结果是对p指针指向的值取值,*p等于a,然后'a'+2 = 'c',即输出c
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/84sm2p4qv4vmsmv4vs.html
其他看法
第1个回答 2019-12-24
*p是字符串的首地址,*p+2则是指向首地址+2的数据,所以是字符c
第2个回答 2019-10-21
*p取出"abc"中的'a',然后加2等于'c'
你可以试试*p+3验证一下本回答被提问者采纳
第3个回答 2019-12-24
*p就是a,第一个字符,其实下标为0
1 就是 b
2对应的就是 c
第4个回答 2019-12-24
*p是一个指针,定义时指向字符a,*p+2是指针后移2个地址,就指向字符c了。希望对你有所帮助,谢谢!
相似回答
大家正在搜
相关问题
C语言 printf("%c","abc"[2]) 结果为什...
C语言 int *p=&x; printf ("%p",p)...
在下面两个c程序中,为什么第一个printf输出写的是*p,...
C语言中为什么printf("%c","abcd"[2])输...
char a[]="1234" *p; for(p=a;*p...
char *p="ABCD";printf("%c",*p+...
C语言问题,请问printf("%c\n",'abc');输...
char *p="SXCDE"; printf("%c",*...