| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 617 人关注过本帖
标题:【已解决】请解释第三个printf,谢谢!
只看楼主 加入收藏
fish7fish7
Rank: 1
等 级:新手上路
威 望:1
帖 子:145
专家分:0
注 册:2008-7-31
收藏
 问题点数:0 回复次数:5 
【已解决】请解释第三个printf,谢谢!
#include"stdio.h"
void main()
{
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;
printf("%d,%d\n",!x*!y,!!!x);                           /*0*0==0,!!0==0*/
printf("%d,%d\n",x||i&&j-3,i<j&&x<y);                   /*1||1&&1==1,1&&0==0*/
printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);            
}

[[it] 本帖最后由 fish7fish7 于 2008-8-3 16:42 编辑 [/it]]
搜索更多相关主题的帖子: printf 解释 
2008-08-03 12:09
elan1986
Rank: 6Rank: 6
等 级:贵宾
威 望:18
帖 子:458
专家分:407
注 册:2007-12-17
收藏
得分:0 
printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);

C中的IF判断条件结果
用0,1表示的
0为假 1为真
&& 要同时判断前后条件 但是如果前面的为假 后面的就不必判断了 则为0
|| 这个就不必说了

(i==5&&c)&&(j=8) 先判断前一个括号 然后 再判断后一个
2008-08-03 12:25
fish7fish7
Rank: 1
等 级:新手上路
威 望:1
帖 子:145
专家分:0
注 册:2008-7-31
收藏
得分:0 
按楼上的说法应该输出1,1喽,可为什么输出的是0,1呢?
2008-08-03 12:32
hyzjie
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-7-30
收藏
得分:0 
i==5,等于而不是赋值,为假       (i==5)&&c&&(j=8)// 0&&1&&1;
2008-08-03 13:50
elan1986
Rank: 6Rank: 6
等 级:贵宾
威 望:18
帖 子:458
专家分:407
注 册:2007-12-17
收藏
得分:0 
呵呵 你还是没有懂的类
赋值和等于是不一样的
== 一般用来判断条件用的
= 一般用来赋值
2008-08-03 14:07
fish7fish7
Rank: 1
等 级:新手上路
威 望:1
帖 子:145
专家分:0
注 册:2008-7-31
收藏
得分:0 
我又看看书,终于明白了,楼上的两位都没说到点子上,实际的难点是==的优先级高于&&的优先级,不过还是很感谢两位的过目……
再次感谢!
2008-08-03 16:41
快速回复:【已解决】请解释第三个printf,谢谢!
数据加载中...
 
   



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

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