黑马程序员技术交流社区

标题: C语言指针的使用 [打印本页]

作者: 浩润2015    时间: 2015-10-5 22:03
标题: C语言指针的使用
若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是 A.def B.d C.e D.0 
参考答案:C
求大神帮忙,,不知道为什么是选C呢???
作者: HI奋斗    时间: 2015-10-6 07:05
p+4应该为CH[4]
作者: ff774411    时间: 2015-10-6 11:03
首先ch[] 为一个数组,*p = ch期中p指向的还是数组的首地址,也就是a的地址。转义字符“\0”属于空字符,所以*p = "a",*p +1= "b",*p+2 = "c",*p+3 = "d",*p+4 = "e",
作者: wwf707542865    时间: 2015-10-7 21:51
*p是a,  a+4=e
作者: wwf707542865    时间: 2015-10-7 21:52
ff774411 发表于 2015-10-6 11:03
首先ch[] 为一个数组,*p = ch期中p指向的还是数组的首地址,也就是a的地址。转义字符“\0”属于空字符,所 ...

同学,你理解错了吧,*p=a,a+4=e,这里不是指针移动,你的理解要这样写 *(p+4)
作者: gaozp    时间: 2015-10-10 10:20
指针*p代表ch的中的a
*p+1代表ch中的b以此来计算*p+4代表e
\0代表空字符




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2