C语言条件运算符怎么用,c语言条件运算符有哪些
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));
条件运算符:计算 ?前面表达式,为真返回冒号前面的,为假返回冒号后面的。因为 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
c语言中的? :怎么用啊
你好,朋友!
C语言中的“?:”是条件运算符,它是三目运算符,它的结合方向是自右至左。条件表达式的一般形式是
表达式1?表达式2:表达式3
说明:
条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,这时表达式3的值就是整个条件表达式的值。
下面,我举个例子吧,让你更进一步了解。
max=(ab)? a:b
执行结果就是将条件表达式的值赋给max,也就是将a和b二者中的大者赋给max。
这样,你应该明白了吧。呵呵。
c语言的条件符号怎么用
这是一个复合条件表达式
可以加括号变为wx?w:(zy?z:x)
你可以看到最后实际上格式为x op y ? z :w的样子
就是表示要是x与y的关系成立,则取z的值作为条件表达式的值,舍去w的值不用,
相反,则舍去z的值,取w的值。
如果是复合的,则从右往左算,规则一样
条件运算符的C语言
表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(ab)?a:b
就是将a和b二者中较大的一个赋给max。
2、min=(ab)?a:b
就是将a和b二者中较小的一个赋给min。 条件运算符优先级高于赋值、逗号运算符,低于其他运算符
例如:
⑴ mn ? x : a+3
等价于:(mn) ?(x) :(a+3)
⑵ a++=10 b--20 ? a : b
等价于:(a++=10 b--20) ? a : b
⑶ x=3+a5 ? 100 : 200
等价于:x= (( 3+a5 ) ? 100 : 200 ) 条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
例如:
wx ? x+w : xy ? x : y
与 wx ? x+w : ( xy ? x : y) 等价
与 (wx ? x+w : xy) ? x : y 不等价