为了账号安全,请及时绑定邮箱和手机立即绑定

C语言小白的一个问题

C语言小白的一个问题

C
K没病 2017-09-28 08:58:08
为什么-(k++),如果k的初值为3,则整个表达式的值为-3,而k的最终结果为4?
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

“k++ 表达式的值”和“k 的值”是两个东西。

每个表达式都有值

k++ 这个后置自增表达式的值就是 k 当时的值。这个表达式额外的副作用是使 k 自增,但这不影响表达式自身的值。

所以 k++ 表达式的值为 3,-(k++) 表达式的值为 -3。而 k 会被自增为 4。


具体详解可参考我的另一个回答 http://www.imooc.com/qadetail/83948

查看完整回答
3 反对 回复 2017-09-28
?
chenyzzzzz

TA贡献5条经验 获得超2个赞

++在后面表示表达式先使用后执行自加

++在前面表示表达式先自加在使用

--道理一样

-(k++)表达式先使用k的值取反为-3,表达式结束后k在自加1 所以k值为4

查看完整回答
2 反对 回复 2017-09-28
?
慕spring

TA贡献38条经验 获得超4个赞

k++,先使用k的值3,所以表达式是-3,然后k再加1,k的值就变成4;

如果-(++k),这个表达式,就是k先加1,然后整个表达式变成-4;

查看完整回答
反对 回复 2017-09-28
  • 3 回答
  • 0 关注
  • 1562 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信