关于编程语句i++与++i的区别用法

首先我们定义一个变量i,int i=5;

然后我们做执行printf(“%d”,i++);

我们会发现输出结果是5。

是为什么呢,我们要搞清楚printf(“%d”,i++);

这句话是做两件事:

1.输出i

2.i=i+1;

这里的顺序,是先输出i,再执行i=i+1;

然后我们初始化变量i,i=5;

然后我们做执行printf(“%d”,++i);

我们会发现输出结果是6。

其实printf(“%d”,++i);做的也是这两件事,

1.输出i

2.i=i+1;

只是先做i=i+1;然后输出i;

总结:++i;i++;的区别:

i++先做别的事,再自己加1;

++i先自己加1,再做别的事情;

形象的理解,你可以把++i比作自私的人,首先考虑自己的事;

i++是无私的,先为别人照想,这样方便记忆。

也可以参照函数:i++

function () {
    tmp = i;
    i = tmp + 1;
    return tmp;
}

++i为

function () {
    i = i + 1;
    return i;
}

总而言之,i++ 语句需要个临时变量,去存储返回自增前的值。

不要忽略这个变量的意义,了解过 C 等「低级」语言的朋友,可能会了解变量的内部机制。首先,申请(malloc)一段内存空间,然后将值塞(push,压栈)进去,最后不用了释放(free)。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值