搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么a的初始值为3(++a)+(++a)值为10
标题:
为什么a的初始值为3(++a)+(++a)值为10
只看楼主
小青345
等 级:
论坛游民
帖 子:64
专家分:15
注 册:2017-8-24
结帖率:
0
楼主
问题点数:0 回复次数:9
为什么a的初始值为3(++a)+(++a)值为10
为什么a的初始值为3(++a)+(++a)值为10
搜索更多相关主题的帖子:
初始值
2017-11-01 09:34
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
2
楼
得分:0
3两次++是5, 5+5=10吧
2017-11-01 09:48
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
3
楼
得分:0
回复 2楼 吹水佬
可是 clang 编译时报错 multiple unsequenced modifications
然后输出
9
gcc 编译是报错 operation on 'a' may be undefined
然后输出 10
2017-11-01 10:03
booksoon
等 级:
论坛游民
威 望:
3
帖 子:19
专家分:67
注 册:2017-10-30
第
4
楼
得分:0
在表达式(++a)+(++a)中a只占用一个内存空间,编译器就地计算,表达式的值为10;a最终的值为5
如果a=3;b=3,则(++a)+(++b)的值为8
2017-11-01 10:12
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
5
楼
得分:0
回复 楼主 小青345
类似(++a)+(++a)这种表达方式玩一下就好了,不要较真。
两个操作数存在相互干扰,有不确定因素,是否有逻辑性错误?
2017-11-01 11:09
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
6
楼
得分:0
这种未定义代码有什么好讨论的。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-11-02 10:38
歌骑阿仲
等 级:
论坛游民
帖 子:18
专家分:10
注 册:2017-10-31
第
7
楼
得分:0
迷瞪中
2017-11-04 16:39
以诗为伴
等 级:
新手上路
帖 子:2
专家分:0
注 册:2017-10-26
第
8
楼
得分:0
为什么输出还是3.
#include<stdio.h>
int main()
{
int m=3;
printf("%d\n",m++);
return 0;
}
2017-11-06 18:59
zbjzbj
来 自:郑州
等 级:
贵宾
威 望:
52
帖 子:620
专家分:3020
注 册:2011-4-22
第
9
楼
得分:0
这种代码不同编译器有不同的解释,一种整行预扫描,把每个自加调整到位再做整行计算,一种是一个符号一个符号扫描,计算到哪个调整哪个自加操作数。所以有不同结果。一般编程时要避免这种代码。
2017-11-06 22:21
月亮小乔
等 级:
新手上路
帖 子:22
专家分:0
注 册:2017-11-1
第
10
楼
得分:0
我觉得你要搞清楚++n和n++的区别,第一个是先加再执行,第二个是先执行再加
2017-11-06 22:37
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-482007-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.551983 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved