C语言条件运算符怎么用,c语言条件运算符有哪些

http://www.itjxue.com  2023-01-14 11:33  来源:未知  点击次数: 

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 不等价

(责任编辑:IT教学网)

更多

推荐Flash动画制作教程文章