c语言中,条件运算符是怎样的法则?

c语言中,条件运算符是怎样的法则?
哪位大虾能否举个例子?

  c语言中,条件运算符的法则:
  由高到低是:!(非),&&(与),||(或)
  &&左边为0则不看右边运算,||左边为1不看右边!
  例:
  main()
  {
  int a=1,b=2,c=3,d;
  d=!b>a&&c||c>2
  printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
  }
  运行结果:a=1
  b=0
  c=3
  d=1
  程序执行说明:先执行!b>a即0>a,结果为0(b=0)
  再执行0&&c结果为0,执行c>2结果为1
  0||1结果为1
  因为执行顺序为右结合,所以将整个表达式的结果给 d为1
  }
  
  条件运算符:
  (表达式1)?(表达式2):(表达式3)
  运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
  例如:
  A=1,B=2
  (A>B)?A:B
  返回值为2
  注意表达式是右结合的.
  例:
  A=1,B=2,C=3
  (A>B)?A:B?C:B
  相当于(A>B)?A:(B?C:B)
  返回值为3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-30
我记得好像有一个是? :,例a>b?1:0.意思就是a>b吗?如果是那么这个表达示的结果是1,否刚就是0.a>b是一个条件,那么这个表达示只要是一个非0值就会取:之前的值,否则就取:之后
第2个回答  推荐于2018-03-08
c语言中,条件运算符的法则:
由高到低是:!(非),&&(与),||(或)
&&左边为0则不看右边运算,||左边为1不看右边!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
运行结果:a=1
b=0
c=3
d=1
程序执行说明:先执行!b>a即0>a,结果为0(b=0)
再执行0&&c结果为0,执行c>2结果为1
0||1结果为1
因为执行顺序为右结合,所以将整个表达式的结果给 d为1
}

条件运算符:
(表达式1)?(表达式2):(表达式3)
运算规划:如果表达式1为真,返回表达式2的结果,否则返回表达式3的结果
例如:
A=1,B=2
(A>B)?A:B
返回值为2
注意表达式是右结合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相当于(A>B)?A:(B?C:B)
返回值为3本回答被提问者和网友采纳
第3个回答  2007-08-30
not and or 高到低

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网