搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这个是为什么?
标题:
这个是为什么?
只看楼主
黄昏的王座
来 自:安徽亳州
等 级:
论坛游民
帖 子:38
专家分:65
注 册:2011-10-5
结帖率:
85.71%
楼主
已结贴
√
问题点数:1 回复次数:10
这个是为什么?
我用code:block编写的
#include<stdio.h>
int main()
{
int i = 2;
printf ("%d, %d", i++, ++i);
}
输出结果为3,4. 按照规则应该输出的是3,3 啊!
搜索更多相关主题的帖子:
block
2011-10-05 11:32
别时茫茫
来 自:安徽蚌埠
等 级:
论坛游民
威 望:
1
帖 子:29
专家分:72
注 册:2011-10-5
第
2
楼
得分:1
这个可能和编译器有关系吧。我用了vc和codeblocks编译出来的结果不一样。
2011-10-05 11:38
唯我独魔
等 级:
蝙蝠侠
帖 子:176
专家分:782
注 册:2011-4-13
第
3
楼
得分:0
我运行是3,3
2011-10-05 11:40
mengcan555
等 级:
业余侠客
帖 子:104
专家分:253
注 册:2011-9-17
第
4
楼
得分:0
我用 vc6是3 3
2011-10-05 12:46
wxfcyuyan
来 自:中国安徽
等 级:
论坛游民
帖 子:14
专家分:29
注 册:2011-9-2
第
5
楼
得分:0
回复 楼主 黄昏的王座
按照规则是3,3吗?应该是2,4吧
[
本帖最后由 wxfcyuyan 于 2011-10-5 15:07 编辑
]
2011-10-05 14:58
hon664618561
等 级:
新手上路
帖 子:12
专家分:0
注 册:2011-10-3
第
6
楼
得分:0
int i = 2;
printf ("%d, %d", i++, ++i);
用vc6.0结果是2,4
i++表示先打印i,i=2,然后i+1,此时i=3.
++i表示先i+1,i=4,然后打印i。
2011-10-05 15:33
hon664618561
等 级:
新手上路
帖 子:12
专家分:0
注 册:2011-10-3
第
7
楼
得分:0
纠正一下错误
int i = 2;
printf ("%d, %d", i++, ++i);
结果是3,3
计算是从右到左的
先计算++i,i=3,再打印3;然后计算i++,先打印i,打印完后i+1,i=4,
所以结果为3,3
2011-10-05 15:56
qwerty089850
等 级:
新手上路
帖 子:4
专家分:0
注 册:2011-10-3
第
8
楼
得分:0
一起打印结果是 3,3
分开来:
printf("%d\n",i++);
printf("%d\n",++i);
结果是 2
4
原因是:其中i++表示先执行这句命令后+1;i++表示先加1在执行命令。
!!!记住是执行完整句命令之后。因此: printf("%d\n%d\n",i++,++i);的执行是: 计算++i,打印两个%d %d,计算i++。
这是VC6运行的结果,至于你的3,4 我不解。
[
本帖最后由 qwerty089850 于 2011-10-5 16:06 编辑
]
2011-10-05 16:03
hon664618561
等 级:
新手上路
帖 子:12
专家分:0
注 册:2011-10-3
第
9
楼
得分:0
#include<stdio.h>
int main()
{
int i = 2;
printf ("%d, %d", i++, ++i);
printf (", %d", i);
}
这个结果是3,3,4
2011-10-05 16:11
NeXT__00
等 级:
论坛游民
帖 子:51
专家分:98
注 册:2011-9-5
第
10
楼
得分:0
从右到左 计算
2011-10-05 21:21
11
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-351611-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.266355 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved