C语言中的运算符 ? :(条件运算符)运算过程的讲解!

作者&投稿:陈没冒 (若有异议请与网页底部的电邮联系)
C语言中条件运算符是什么意思~

条件运算符(? : )是一个三目运算符,即有三个操作数。
使用条件运算符(?:)可以实现 If else 的功能,其一般形式为:
表达式1 ? 表达式2 : 表达式3
例如条件语句:
if(a>b) max=a;else max=b;可用条件表达式写为
max=(a>b) ? a : b;
执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
if条件语句例子如下:

直接编译,程序输出结果中任意输入年龄,程序执行结果如下图所示:

知识扩展:
条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
条件运算符?和:是一对运算符,不能分开单独使用。
条件运算符的结合方向是自右至左。

  c语言中,条件运算符的法则:
  由高到低是:!(非),&&(与),||(或)
  &&左边为0则不看右边运算,||左边为1不看右边!
  例:
  main()
  {
  int a=1,b=2,c=3,d;
  d=!b>a&&c||c>2
  printf("a=%d
b=%d
c=%d
d=%d
",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

z=(x=1)?(y=1,y+=x+5):(x=7,y=3);
这句主要的有2个运算符,一个条件运算符 ?: ,一个赋值运算符 z=...
优先级是条件运算符比较高,可以转换成:
z= ((x=1)?(y=1,y+=x+5):(x=7,y=3));
条件运算符:计算 ?前面表达式,为真返回冒号前面的,为假返回冒号后面的。因为 x=1 表达式整体值为 1,即为真,返回 (y=1,y+=x+5) 表达式的值,这里是逗号表达式,唯一一个不知道几目的运算符,像++,--属单目,+ , - 等是双目,条件是三目运算符。。。。
逗号表达式从左至右运算,返回最右边表达式的值,这里返回 y=y+x+5,即返回7
所以有结果,z=7,x=1,y=7
w=y*'a'/4;
把字符'a'做整数运算,取ASCII码97
w=7*97/4;
结果为169.75,但是由于w为整数,取整数部分为169,打印时由于你没用格式控制、空格等,
所以打印出:177169


尼勒克县13781925572: C语言中的运算符 ? :(条件运算符)运算过程的讲解! -
臧货多索: z=(x=1)?(y=1,y+=x+5):(x=7,y=3); 这句主要的有2个运算符,一个条件运算符 ?: ,一个赋值运算符 z=... 优先级是条件运算符比较高,可以转换成: z= ((x=1)?(y=1,y+=x+5):(x=7,y=3)); 条件运算符:计算 ?前面表达式,为真返回冒号前面的,...

尼勒克县13781925572: C语言条件运算符 -
臧货多索: 三目运算符 m = A?B:C A != 0时 m = B A = 0 时 m = Cch=(ch>='a'&&ch这个意思是 : 如果a为小写字母,则转化为大写字母

尼勒克县13781925572: 在c语言中,何为条件运算符!具体的条件运算符有哪些? -
臧货多索: 条件运算符只有一个?:. (expression a)?(expression b):(expression c) 如果a为真,则返回b;否则,返回c

尼勒克县13781925572: C语言运算符都有那些? -
臧货多索: 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算.包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种. 2.关系运算符 用于比较运算.包括大于(>)、小于...

尼勒克县13781925572: c语言中条件运算符的结合性 -
臧货多索: C语言中,逗号运算符和条件运算符还有单目运算符是有结合性的,逗号运算符左结合性条件运算符右结合性单目运算符:++、--、+(正)-(负)、*、&、!右结合性

尼勒克县13781925572: C语言编程 条件运算符 -
臧货多索: 前一个是合法的 后一个是非法的. A?B:C 语句,其表达式整体值,为B或者C的值 所以 B C必须有值才行. 而return x这样的语句,并没有自己的值,这种写法 编译都过不了的.

尼勒克县13781925572: 谁能概括的帮我总结一下C中运算符的种类,运算优先级,结合性相关知识. -
臧货多索: C语言中的运算符可以归纳为下列5类:算术运算符、关系运算符、赋值运算符、逻辑运算符和条件运算符. 1.算术运算符有+、-、*、/、%. 分别表示算术加、减、乘、除和取余运算. 这些运算符需要两个运算对象,称双目运算符.除取余(%...

尼勒克县13781925572: c语言中有哪些运算符,各有什么功能? -
臧货多索: 加法运算符 1、移位运算符 2、 关系运算符 3、相等运算符 4、 位与运算符 5、位异或运算符 6、 位或运算符 7、 逻辑与运算符 8、 逻辑或运算符 9、 三元条件运算符 10、 赋值运算符 12、逗号运算符 13、优先级功能介绍: 1、赋值语句的作...

尼勒克县13781925572: C语言运算符有什么?都分别包括什么意思?又有什么用处? -
臧货多索: 一、赋值运算符 赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量.符号为'='.这里并不是等于的意思,只是赋值,等于用'=='表示. 注意:赋值语句左边的变量在程序的其他地方必须要声明. 得已赋值的变量我们称...

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