怎么输出1呢?

longyuhen 2006-04-24 06:33:33
main(){
int i=0,*p,a[]={1,2,3,4,5};
p=a;
printf("%d\n",*(p--));

printf("%d",*(++p));
getch();
}输出:1
1//这个1,怎么理解的?不是先自增在取*吗?应该是2呀?我用的是DEV C++4.O运行的
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞哥 2006-04-24
  • 打赏
  • 举报
回复
首先:不知道你前面的*(p--)是做什么用的
不过(p--)肯定是做过运算才做*p的
取到a[-1]了,
再加又回来了
重复楼上的了:(
hazuki9902 2006-04-24
  • 打赏
  • 举报
回复
...(@_@)
longyuhen 2006-04-24
  • 打赏
  • 举报
回复
对,我都忘记了,谢谢
jixingzhong 2006-04-24
  • 打赏
  • 举报
回复
不是先自增在取*吗
==========
是!

但是楼主你在前面有一个 -- 操作,
把p指向了 a[-1] ,(这个元素的内容不可预知)

所以这个 ++ 也就是把 p 又指向了a[0]而已,
结果还是 1

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧