| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2908 人关注过本帖
标题:新手求助各位大大
只看楼主 加入收藏
想学的菜鸟
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
帖 子:633
专家分:3045
注 册: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
帖 子:633
专家分:3045
注 册: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
帖 子:633
专家分:3045
注 册: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
帖 子:633
专家分:3045
注 册: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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:0 
对于printf("%d %d",x,x++);的问题,可以用不同的编译器编译再看看编译后代码。
不同编译器可能有不同的结果,运算顺序可能从左到右或从右到左,结果不确定,属未定义行为,实际应用时代码不要用这类写法。
2018-10-20 08:45
快速回复:新手求助各位大大
数据加载中...
 
   



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

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