| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:一个c语言小问题.
只看楼主 加入收藏
lovely_ones
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-8-1
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
一个c语言小问题.
程序代码:
#include <stdio.h>
int main()
{
    int a=1,b=2,c=3,d=4,m=2,n=2;
    (m=a>b)&&(n=c>d);
    printf("%d",n);
    return 0;
}
(m=a>b)&&(n=c>d);
这一句执行后,为什么n还等于2
搜索更多相关主题的帖子: c语言 
2011-11-21 15:17
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
收藏
得分:5 
程序代码:
#include <stdio.h>

 int main()

 {
     int a=1,b=2,c=3,d=4,m=2,n=2;
     (m=a>b)&&(n=c>d);  //先判断a>b是假,于是m=0;
     printf("%d",n);   //在于是在&&的条件下只要有一个语句是假整个表达式就是假;
     return 0;        //于是不执行(n=c>d)这条语句;
 }                   //结果是n=2;
                    //得出结论:计算机比你想象中的聪明很多;

能力 技巧
2011-11-21 15:30
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:5 
是这样的,因为 (m=a>b)&&(n=c>d);这个语句是这样执行的:m=a>b为假,即m=0, 对于逻辑&& 运算符来说,它前面已经为假了,就不执行它后面的运算了,因此,n的值还是原来的初值2.
2011-11-21 15:36
lovely_ones
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-8-1
收藏
得分:0 
回复 3楼 刘定邦
原来如此...谢谢
2011-11-21 15:46
快速回复:一个c语言小问题.
数据加载中...
 
   



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

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