+ -
当前位置:首页 → 问答吧 → 这断代码输出啥?考考大家,看看有多少像我一样弱的!

这断代码输出啥?考考大家,看看有多少像我一样弱的!

时间:2010-09-03

来源:互联网

考考大家,看看有多少像我一样弱的!
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int a = 0;
  5.     int b = 0;
  6.     int c = 0;
  7.     int sum;
  8.     sum = (a=3) , (b=2) , (c=1);
  9.     printf("%d %d %d %d\n", sum, a, b, c);
  10.     return 0;
  11. }
复制代码
问题1:以上输出什么?

问题2:如果改成
  1. sum = (a=3) && (b=2) && (c=1);
复制代码
输出什么?

问题3:如果改成
  1. sum = (a=3) || (b=2) || (c=1);
复制代码
输出什么?

不许上机试验!

作者: zhangsuozhu   发布时间: 2010-09-03

1 3 2 1
1 3 2 1
3 3 0 0

作者: flw   发布时间: 2010-09-03

顶楼上~

逗号表达式的值

&&  ||

作者: efolzl   发布时间: 2010-09-03

1321
1321
1300
哈哈 上机看的

作者: xxw19840406   发布时间: 2010-09-03

回复 flw


    大牛也有疏忽的时候

作者: xxw19840406   发布时间: 2010-09-03

lz, 根据你最近的帖来看, 基础真需要恶补……

逻辑表达式, 对输入是宽容的: 0为false, 非0为true。
所以前几天一个帖(不是你的)也是废话: if ( x ) 编译器就是按 if ( x!=0 ) 处理的, 没有任何技术上的区别。

逻辑表达式的输出是严格的, 非0即1。
  1. int r = !!(expression);
  2. assert( r==0 || r==1 );
复制代码

作者: OwnWaterloo   发布时间: 2010-09-03

热门下载

更多