为了账号安全,请及时绑定邮箱和手机立即绑定

一个关于一维数组和指针的问题

一个关于一维数组和指针的问题

C
冷寒nn 2017-08-14 12:58:37
代码先给#include <stdio.h> int main(){ int a[5] = {2,4,6,8,10},*p,**k; p = a ; k = &p; printf("%d",*(p++)); printf("%d\n",**k); return 0;}为什么第一个printf输出的是2,而不是4,p存放的是一维数组a第一个元素的地址,加1之后指针不是移动到a[1]了吗?
查看完整描述

5 回答

已采纳
?
什么鬼_呀你

TA贡献46条经验 获得超35个赞

额,p++是先运算在加加,第二遍再输出这个打印才能输出你想要的4。
比如
599176310001a36e10800783.jpg

5991763800012fab10800307.jpg

查看完整回答
反对 回复 2017-08-14
?
致力成为一只优秀的程序员

TA贡献2条经验 获得超3个赞

括号优先级是最高的

查看完整回答
2 反对 回复 2017-08-14
?
骑车去拉萨

TA贡献7条经验 获得超4个赞

和其它人一样,p++是先使用在变化值。而且 ,不是+1是地址上的变化。不是简单的+1

查看完整回答
1 反对 回复 2017-08-15
?
我不是一颗星

TA贡献43条经验 获得超20个赞

p++是先用再加,++p才是先加再用

查看完整回答
1 反对 回复 2017-08-14
?
一步一瘸

TA贡献3条经验 获得超1个赞

把++放p前面试试

查看完整回答
1 反对 回复 2017-08-14
?
言曌博客liuyanzhao_com

TA贡献164条经验 获得超116个赞

羡慕一些用手机敲代码的人

查看完整回答
反对 回复 2017-08-14
  • 5 回答
  • 1 关注
  • 2230 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信