| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 460 人关注过本帖
标题:关于printf的一个题,求解疑
只看楼主 加入收藏
findwind
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2015-8-21
收藏
 问题点数:0 回复次数:7 
关于printf的一个题,求解疑
#include<stdio.h>
#include<stdlib.h>
main()
{
    char a = 'A';
    int b = 20;
    printf("%d,%o",(a,a + b,b),a + 'a' - 'A',b);
}


#include<stdio.h>
#include<stdlib.h>
main()
{
    char a = 'A';
    int b = 20;
    printf("%d,%o",(a = a +1,a + b,b),a + 'a' - 'A',b);
}
为什么两个结果都是 20,141
第二个结果为什么不是20,142
我用的是codeblock
搜索更多相关主题的帖子: include 
2015-08-21 12:13
findwind
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2015-8-21
收藏
得分:0 
已找到答案
2015-08-21 12:56
luqiyihui
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2015-8-11
收藏
得分:0 
楼主,能请教下第一个程序中printf中那段代码的意思吗?

"%d,%o",(a,a + b,b),a + 'a' - 'A',b

或有其他明白意思的人解释下,先谢!
新人,求学中……
2015-08-21 15:05
文江
Rank: 2
等 级:论坛游民
帖 子:77
专家分:20
注 册:2015-8-17
收藏
得分:0 
"%d,%o",(a,a + b,b),a + 'a' - 'A',b
这是什么意思呀
2015-08-21 16:42
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
printf("%d,%o",(a,a + b,b),a + 'a' - 'A',b);
要理解上面的这段代码, 最好去“stdio.h”中查看一下printf()函数的原型。

%d是按照10进制输出, %o好像是8进制吧,记得不是很清楚了。

另外, 逗号表达式的值是最后面的表达式的值,而且,逗号表达式的优先级最低, 所以那段代码等价于下面的这句:
printf("%d,%o",b,a+'a'-'A')
最后的那个b不输出。  

另外, 对于楼主的代码,在不同的编译器可能会得到不同的结果。 好像有的编译器可以得到142.  

代码测试环境:  WinXP+C-Free5.0.
2015-08-21 22:58
luqiyihui
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2015-8-11
收藏
得分:0 
谢谢5楼的指点!
2015-08-22 15:26
findwind
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2015-8-21
收藏
得分:0 
回复 5楼 vvvcuu
确实是不同编译器会得到不同结果,不过我不知道具体原因
2015-08-22 20:57
findwind
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2015-8-21
收藏
得分:0 
回复 4楼 文江
http://wenda.                 这里面说的比较详细
2015-08-22 21:02
快速回复:关于printf的一个题,求解疑
数据加载中...
 
   



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

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