编程论坛
注册
登录
编程论坛
→
C语言论坛
[求助]x= -i++ 这个表达式的值究竟是怎么算出来的????
黄265
发布于 2022-08-17 09:36, 1110 次点击
当i=8时,算到的结果是x=-9,i=10
这个最终i的值是如何算出来的?
3 回复
#2
不会游泳的虾
2022-08-17 09:44
供参考:
程序代码:
#include
<stdio.h>
int
main()
{
int
x, i =
8
;
x = -i++;
//
这句分解为:x = -i, i++; x = -8,i = 9
printf(
"
x=%d, i=%d
"
, x, i);
return
0
;
}
//
x=-8, i=9
#3
rjsp
2022-08-17 10:12
首先贴完整代码
程序代码:
#include
<stdio.h>
int
main(
void
)
{
int
i =
8
;
int
x = -i++;
printf(
"
i==%d, i==%d\n
"
, i, x );
}
对于 x = -i++; 查询 https://zh. 可知:= 优先级最低,而 - 与 ++ 优先级一样,结合性是 从右到左
所以 int x = -i++; 被解析成 int x = -(i++);
再查 https://zh. 可知:后缀自增的评估值结果是i的值,副作用是 加相应类型的值1到运算数i,即 i++ 的值为8,副作用是i变为9
那么最终结果就是 x=-8, i=9
#4
chenyucheng
2022-08-17 14:43
先++再用数字前面的-变负数。
++在变量后,变量加一,返回原数。
结果是x = -8, i = 9
1