A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 浩润2015 中级黑马   /  2015-10-5 22:03  /  965 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是 A.def B.d C.e D.0 
参考答案:C
求大神帮忙,,不知道为什么是选C呢???

5 个回复

倒序浏览
p+4应该为CH[4]
回复 使用道具 举报
首先ch[] 为一个数组,*p = ch期中p指向的还是数组的首地址,也就是a的地址。转义字符“\0”属于空字符,所以*p = "a",*p +1= "b",*p+2 = "c",*p+3 = "d",*p+4 = "e",
回复 使用道具 举报
*p是a,  a+4=e
回复 使用道具 举报
ff774411 发表于 2015-10-6 11:03
首先ch[] 为一个数组,*p = ch期中p指向的还是数组的首地址,也就是a的地址。转义字符“\0”属于空字符,所 ...

同学,你理解错了吧,*p=a,a+4=e,这里不是指针移动,你的理解要这样写 *(p+4)
回复 使用道具 举报
指针*p代表ch的中的a
*p+1代表ch中的b以此来计算*p+4代表e
\0代表空字符
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马