与混淆++ and --操作员
int a = 10;
printf("%d\n", -(--a) ); // valid
output: -9
但是,使用以下内容时会出现问题:
printf("%d\n", --(-a)); // error, invalid
Why?
The ++
and --
运算符仅适用于左值,不适用于值。左值是可以位于赋值左侧的东西。
printf("%d\n", -(--a) );
Here, --
运算符作用于变量a
,所以这是有效的。
But,
printf("%d\n", --(-a));
Here, (-a)
返回一个值。--
应用于无效值。
这是因为--
修改变量,并且int
值无法修改(例如你不能这样做7 = 5
但你可以做a = 5
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)