c语言三目运算符和比较运算符哪个优先级高
时间: 2023-06-29 17:02:57 浏览: 126
三目运算符的优先级比比较运算符的优先级高。具体来说,C语言中的三目运算符(?:)的优先级是比较运算符(如<, >, ==等)的优先级高的。这意味着,在表达式中同时出现三目运算符和比较运算符时,三目运算符会先被执行。例如:
```
int a = 10, b = 20, c = 0;
c = (a > b) ? a : b; // 先执行比较运算符,再执行三目运算符
```
此时,表达式`(a > b)`会先被执行,它的结果是`false`,然后整个三目运算符就会返回`b`的值,最终将`b`赋值给`c`。
相关问题
c语言中三目运算符用法
在 C 语言中,三目运算符也称为条件运算符,它的基本用法如下:
```c
(condition) ? expression1 : expression2;
```
其中,condition 表示一个条件表达式,如果它的值为真,则整个表达式的值为 expression1,否则为 expression2。
举个例子,假设有两个整数 a 和 b,我们要比较它们的大小并输出较大的那个数,可以使用三目运算符实现:
```c
int max = (a > b) ? a : b;
printf("Max number is %d\n", max);
```
这段代码中,如果 a 大于 b,那么 max 的值就是 a,否则就是 b。最终输出的结果就是较大的那个数。
需要注意的是,三目运算符的优先级比较低,如果在表达式中同时使用了其他运算符,建议使用括号来明确优先级。
C语言中运算符的优先级顺序
C语言中运算符的优先级顺序如下(从高到低):
1. () 小括号
2. [] 中括号
3. -> 结构体指针成员访问
4. . 结构体成员访问
5. ! ~ - + ++ -- * & sizeof 强制类型转换
6. * / %
7. + -
8. << >>
9. < <= > >=
10. == !=
11. & 位与
12. ^ 位异或
13. | 位或
14. && 逻辑与
15. || 逻辑或
16. ?: 三目运算符
17. = += -= *= /= %= <<= >>= &= ^= |= 赋值运算符
18. , 逗号运算符
注意,优先级顺序是指运算符优先级高低的顺序,当有多个运算符出现时,还需要根据结合性确定运算顺序。其中,大部分运算符都是从左往右结合,除了一元运算符和赋值运算符是从右往左结合。
阅读全文