i++,i--运算优先级
时间: 2023-11-03 14:05:31 浏览: 41
i++和i--的运算优先级相同,都是单目运算符,优先级低于算术运算符和关系运算符,高于赋值运算符。在和其他运算符连用时,i++和i--的运算顺序取决于它们前面的运算符的优先级。如果i++或i--前面是算术运算符或关系运算符,则先进行i++或i--运算;如果i++或i--前面是赋值运算符,则先进行赋值运算。
相关问题
++i i++ i-- --i 和算术运算的优先级
++i、i++、i--、--i 都是 C 语言中的自增和自减运算符,它们的优先级相同,都比算术运算符的优先级低。它们的区别在于它们的操作顺序和返回值不同。
++i 表示先将 i 的值加 1,再将加 1 后的值赋给 i,它的返回值是加 1 后的值。
i++ 表示先将 i 的值赋给表达式,再将 i 的值加 1,它的返回值是赋给表达式之前的 i 的值。
i-- 表示先将 i 的值减 1,再将减 1 后的值赋给 i,它的返回值是减 1 后的值。
--i 表示先将 i 的值减 1,再将减 1 后的值赋给表达式,它的返回值是减 1 后的值。
int i=1,j=2,k=3; i-- && ++j || --k; 注意运算符的优先级,例如&&和||谁的优先级高,对于&&和||更要注意短路规则!! i的值是 _______ j的值是 _______ k的值是 _______ (3分) 我的答案: 1 3 2 实际得分:1分 正确答案: 0 3 3
运算表达式 `i-- && ++j || --k` 的计算过程如下:
- 先计算 `i--`,其值为 1,然后将 `i` 的值减 1,即 `i` 的值变为 0。
- 因为 `i--` 的结果为真,所以继续计算 `++j`,将 `j` 的值加 1,变为 3。
- 接着计算 `||` 运算符,因为前面的表达式结果为真,所以不再计算后面的表达式,直接返回真。
- 最后 `k` 的值减 1,变为 2。
因此,表达式的值为真,`i` 的值为 0,`j` 的值为 3,`k` 的值为 2。答案为:
```
0
3
2
```