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

前缀和后缀操作符有什么区别?

前缀和后缀操作符有什么区别?

C
汪汪一只猫 2019-07-06 17:40:59
前缀和后缀操作符有什么区别?下面的代码打印的值为9。为什么?这里return(i++)返回的值为11,并且--i值应该是10本身,有人能解释一下这是如何工作的吗?#include<stdio.h>main(){     int i= fun(10);     printf("%d\n",--i);}int fun (int i){     return(i++);}
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

前缀:

int a=0;int b=++a;          // b=1,a=1

在赋值之前,值将递增。

后缀:

int a=0;int b=a++;  // a=1,b=0

首先将‘a’的值赋给‘b’,然后增加‘a’的值


查看完整回答
反对 回复 2019-07-06
?
繁星coding

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

函数在此之前返回。i因为您使用的是后缀运算符(+),所以会增加。无论如何,增量i不是全局的-只针对各自的功能。如果您使用了预修复操作符,它将是11然后减少到10.

所以你就回来了i作为10,并在printf函数中减少它,这将显示910就像你想的那样。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 841 浏览

添加回答

举报

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