标题:新手求助各位大大
只看楼主
想学的菜鸟
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2018-10-14
得分:0 
回复 9楼 是个业余的
答案确实是 11 10
2018-10-15 19:44
小昆
Rank: 2
等 级:论坛游民
帖 子:22
专家分:13
注 册:2018-10-6
得分:0 
不会的时候就先看书,看格式,先看着书打代码,在背几个代码,然后模仿,再自己整理逻辑自己敲
2018-10-18 22:59
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
得分:0 
回复 8楼 想学的菜鸟
同学你好!我认为(x++,y)这个式子中逗号是顺序输出,输出的结果是y的值,而在y++中输出y的值是11,因此结果是11 10。

借用一下侯捷的话:勿在浮沙筑高台。
2018-10-19 16:52
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 7楼 想学的菜鸟
我是自学
2018-10-19 16:54
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
试试这个
#include <stdio.h>
int main()
{
    printf("%d %d",(1,2),3);        
 }
2018-10-19 23:28
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
再试试这个:
#include <stdio.h>
int main()
{
    int x=10;
    printf("%d %d",x,x++);
 }     

[此贴子已经被作者于2018-10-19 23:54编辑过]

2018-10-19 23:39
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
还有这个
#include <stdio.h>
int main()
{
    int x=10;
    printf("%d %d %d %d",x,x++,x++,x++);            
 }     
2018-10-19 23:53
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
总结:编译器在编译的时候,首先进行了整行扫描,发现本行含有运算,首先确定了最后一个%d的数值,然后才确定了倒数第二个%d的数值,依此类推。
2018-10-19 23:58
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 17楼 zbjzbj
结果 是 10 10 10 10啊
2018-10-20 01:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
对于printf("%d %d",x,x++);的问题,可以用不同的编译器编译再看看编译后代码。
不同编译器可能有不同的结果,运算顺序可能从左到右或从右到左,结果不确定,属未定义行为,实际应用时代码不要用这类写法。
2018-10-20 08:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490369-1-1.html




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

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