| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 316 人关注过本帖
标题:求高手解答下,想不明白!!!
只看楼主 加入收藏
lfh830
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-7-8
收藏
 问题点数:0 回复次数:4 
求高手解答下,想不明白!!!
int arr[]={6,7,8,9,10};
int *p = arr;
*(p++) += 123;
printf("%d %d",*p,*(p++));
//printf("%d %d",*p,*(++p))这个输出是8 8还可以理解,首先*p = 6,执行完第三句,数组变成{129,7,8,9,10},p指向7,printf从右往左读取,自然输出8 8;
上面那个输出8 7怎么解释?
2014-07-08 16:25
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
printf函数涉及到入栈顺序问题  所以在printf语句中使用++  -- 一类的运算符  纯属没事找虐

DO IT YOURSELF !
2014-07-08 16:30
lfh830
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-7-8
收藏
得分:0 
原来如此,从右往左压栈,进去是7 8,出来变成8 7了,多谢指点!!
2014-07-08 16:40
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用lfh830在2014-7-8 16:40:27的发言:

原来如此,从右往左压栈,进去是7 8,出来变成8 7了,多谢指点!!



实际操作时,坚决杜绝类似代码就ok了  其实你输出的是 8  7   相同的代码 别人未必输出8 7 也许 7 7 也是有可能的

DO IT YOURSELF !
2014-07-08 17:01
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
栈:后进先出
队:先进先出可以看看数据结构

走向光明的菜鸟学生,励志成为新一代程序猿
2014-07-09 13:27
快速回复:求高手解答下,想不明白!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015649 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved