C语言?和:操作符怎么用

Python014

C语言?和:操作符怎么用,第1张

C语言?和:是三目运算符,也叫三元运算符。

语法:表达式1 ? 表达式2 : 表达式3

函数:先执行表达式1,执行完毕,如果表达式1的结果为真,则执行表达式2,整个表达式的结果就是表达式2的结果,否则执行表达式3,结果是表达式3的结果。

例如:int res=1?10:20;

可以简单理解为表达式1成立吗?成立执行表达式2,否则执行表达式3。

扩展资料:

关于三目运算符的几点说明:

1、通常,表达式1是用于描述条件表达式中的条件的关系表达式或逻辑表达式。表达式2和3可以是常量、变量或表达式。例如:

(x==y)?y':'n'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='a'&amp&ampch<='z')?(CH+32):CH

2、条件表达式的执行顺序为:首先求解表达式1。如果值为非零,则条件为真,则求解表达式2,并将表达式2的值用作整个条件表达式的值;

如果表达式1的值为0,表示条件为假,则解方程3,表达式3的值是整个条件表达式的值。例如:

(a>=0)?a:-a执行的结果是a的绝对值。

3、在程序中,直接将条件表达式的值赋给变量。例如:

min=(a<b)的结果?a:b是将条件表达式的值赋给变量min,即a和b中的较小者赋给min。

参考资料来源:百度百科----C语言运算符

下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的运算符* &->也在这里列出来了,以后再详细解释。

1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。

2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。

3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。

4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。

6、移位运算符<<和>>。左结合。

7、关系运算符<><= >=。左结合。

8、相等性运算符==和!=。左结合。

9、按位与&。左结合。

10、按位异或^。左结合。

11 、按位或|。左结合。

12、逻辑与&&。左结合。

13、逻辑或||。左结合。

14、条件运算符:?。在第 2 节 “if/else语句”讲过Dangling-else问题,条件运算符也有类似的问 题。例如a ? b : c ? d : e是看成(a ? b : c) ? d : e还是a ? b : (c ? d : e) ? C语言规 定是后者。

15、赋值=和各种复合赋值(*= /= %= += -= <<= >>= &= ^= |=)。右结合。

16、逗号运算符。左结合。