专栏首页程序员互动联盟【答疑解惑】i++,++i,i+=的区别

【答疑解惑】i++,++i,i+=的区别

说起这个i++, ++i 入门练习都会搞这个,一如既往,百试不爽。

表达式 a = i++; 它等价于 a = i ; i = i + 1;

表达式 a = ++i 它等价于 i = i + 1; a = i;

1、 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值

2、 ++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,我们要注意i值在程序流中的变化,如果是for、while循环判断中要特别注意++i的值比i++值要提前。

3、i=1 ; j=(++i)+(++i)+(++i); printf("j= %d/n",j); 这个结果是什么?没有结果,因为不同的编译器做出来的结果,你要纠结这个,哎我只能说那些书上纯粹是搞人。

以上我们只需记住先序后续递增,循环判断时的条件即可。

i += 2; 这个是 i = i + 2; 自身值加上2后赋值给自己。这个没有争议。

来骚年练习一下 i += (++i)+(++i)+(++i); 呵呵!!!

本文分享自微信公众号 - 程序员互动联盟(coder_online)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学编程需要多高的机器配置?

    疑惑一 学编程需要多高的机器配置? 很多准备学习编程的小伙伴开始下的决心很大,一定要买个牛一些的电脑,其实对于初学者来说个人觉得意义不是很大,要求电脑配置很高的...

    程序员互动联盟
  • 【Android基础】Fragment 详解之Fragment介绍

    Fragment在Android 3.0( API 11)引入,是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。Fragment可以看作是嵌套的...

    程序员互动联盟
  • 编程大牛都有哪些基本功

    第一部分:什么是基本功 先说说我所理解的基本功是什么:在讨论,计划,工作,策略以及其他一切相关于这个事物的活动时候,可以不用拿出来讨论的“技能”,但是却又是必...

    程序员互动联盟
  • marshmallow之自定义Field

    创建继承自marshmallow.fields.Field类的子类并实现_serialize和/或_deserialize方法:

    枇杷李子橙橘柚
  • SAP订单上Shipping抬头和行项目字段的持久化实现原理

    It is known that we can maintain shipping data for order header and order item s...

    Jerry Wang
  • Python面试题目之列表去重并维持原来顺序

    Jetpropelledsnake21
  • jQuery 选择器

    基本选择器 基本选择器是最简单的选择器,可以通过元素id、class和标签名等来直接查找DOM元素。 元素选择器 根据给定元素名匹配元素。如下选择的是所有d...

    静默虚空
  • NLP 解决方案是如何被深度学习改写的?

    AI 研习社:英特尔人工智能产品事业部,数据科学主任 Yinyin Liu 近日撰写了一篇文章,介绍了深度学习为自然语言处理带来的种种变化。有趣的大趋势是首先产...

    AI研习社
  • 三大运营商1月成绩单揭晓,有喜有悲,基础通信这碗饭还能干多久?

    未来只能是ToB,如果说ToC主要是吃的人口红利,那ToB主要吃的是国家GDP的增长(特别是数字经济),背后是有国运加持的。

    悲了伤的白犀牛
  • GitHub上首本开源文档:Java开发规范和系统优化指南

    每个公司都要求程序员写出性能良好、维护性强的代码,各种高端职位的任职要求也会把优化系统作为必选要求之一。当业务系统重构时,以及各种互联网大促前,也都期望系统的性...

    马士兵的朋友圈

扫码关注云+社区

领取腾讯云代金券