搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 有关自增,自减的问题。
标题:
有关自增,自减的问题。
只看楼主
黄love昏
等 级:
论坛游民
帖 子:6
专家分:10
注 册:2012-8-12
楼主
问题点数:0 回复次数:12
有关自增,自减的问题。
#include<stdio.h>
void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++i)+(++i)+(++i);
printf("%d,%d,%d,%d",p,q,i,j);
}
我运算的答案是15,31,11,5
书上的答案是15,24,8,5
2012-08-12 18:30
jarryjsq
等 级:
论坛游侠
威 望:
1
帖 子:45
专家分:124
注 册:2011-7-11
第
2
楼
得分:0
以自己调试的程序为准,另外这种程序少写,自己写的时候头疼,别人看的时候也头疼。
2012-08-12 18:43
黄love昏
等 级:
论坛游民
帖 子:6
专家分:10
注 册:2012-8-12
第
3
楼
得分:0
回复 2楼 jarryjsq
没有,我只是想弄懂这个自增自减
2012-08-12 18:58
丛中之歌
等 级:
新手上路
帖 子:1
专家分:0
注 册:2012-8-5
第
4
楼
得分:0
显然 q应该是 (++j) 注意是 用到j,不然你定义j有什么用
2012-08-12 19:03
黄love昏
等 级:
论坛游民
帖 子:6
专家分:10
注 册:2012-8-12
第
5
楼
得分:0
回复 4楼 丛中之歌
对,这个是我写错了,但运行后还是不一样,
答案是15,22,8,8
2012-08-12 19:19
zhongmuzhong
等 级:
新手上路
帖 子:3
专家分:0
注 册:2008-3-12
第
6
楼
得分:0
这些是错误写法,属于未定义,结果在不同平台不一样,两个序列点之间对一个变量只能有一次修改,
收到的鲜花
pangding
于
2012-08-12 23:17
送鲜花
3朵 附言:知道序列点概念的人不多。
2012-08-12 21:24
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
7
楼
得分:0
6楼专业。
楼主看的书不行,如果有条件换一本吧。
2012-08-12 23:16
peach5460
来 自:武汉
等 级:
贵宾
威 望:
30
帖 子:2780
专家分:6060
注 册:2008-1-28
第
8
楼
得分:0
每隔几天,就会有一个新手来问一些如果在工作中写出来会被开除的代码...
我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-08-13 10:49
风逸护焰
等 级:
论坛游民
帖 子:9
专家分:16
注 册:2012-8-13
第
9
楼
得分:0
不知道楼主懂了没有,小弟虽不是这方面的行家,不过关于i++和++i这问题倒是比较清楚;前者 先赋值,后自增;后者相反 先自增,后赋值。记住这点,问题就迎刃而解了,就拿上面的题为例:p=(i++)+(i++)+(i++);这属于刚说的前者,先赋值:p=5+5+5=15,再自增:i=5+1+1+1=8;q=(++j)+(++j)+(++j);属于后者,先自增:j=5+1+1+1=8,再赋值:q=8+8+8=24;所以最后i、j的值都是8。希望对楼主有用!
2012-08-13 15:09
imleijunhan
等 级:
新手上路
帖 子:1
专家分:0
注 册:2012-8-13
第
10
楼
得分:0
我测试了一下,15,24,8,8------------------9楼我认同!
2012-08-13 15:50
13
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-375137-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.100445 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved