【答疑解惑】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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C语言及其他语言

【每日一题】[蓝桥杯][算法提高VIP]任意年月日历输出

这是一个蓝桥杯的真题哈,大家可以试试锻炼锻炼: 题目描述 已知2007年1月1日为星期一。 设计一函数按照下述格式打印2007年以后(含)某年某月的日历,20...

34810
来自专栏Java帮帮-微信公众号-技术文章全总结

Java中的24种设计模式与7大原则

一、创建型模式 1、抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类. 2...

3417
来自专栏从流域到海域

《笨办法学Python》 第1课手记

《笨办法学Python》第1课手记 在powershell中打开Python输入如下代码: print "Hello World!" print "Hello...

1797
来自专栏转载gongluck的CSDN博客

python笔记:#004#注释

注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 ...

2897
来自专栏xingoo, 一个梦想做发明家的程序员

汇编语言 手记9

使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件 用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运...

1858
来自专栏java一日一条

8种常见的Java不规范代码

在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注...

401
来自专栏听雨堂

将一段复杂文本变成字符串的赋值语句

        因为需要在C#的代码中,写入一大段的js代码和网页代码,试验已经没有问题了。实现时却碰到一个小问题,就是大段的js和html代码,应该以什么方式...

1757
来自专栏C++

python笔记:#004#注释

1073
来自专栏SHERlocked93的前端小站

JS中的垃圾回收与内存泄漏

Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收...

683
来自专栏人工智能LeadAI

JAVA回调机制(CallBack)详解

什么是回调函数(Callback Function) 回调的应用场景非常广泛,在spring中可以看到很多应用了回调的地方,以调用相应的库函数为例子,当程序跑...

3755

扫码关注云+社区