i++ 与 ++i
来源:互联网 发布:明动软件 怎么样 编辑:程序博客网 时间:2024/05/16 11:55
很多人可能已经熟练了使用i++或++i操作,但很少有人能很清楚的道出两者之间的区别,今天就细说一下:
话说++和-- 运算符是C语言中一个很细节的语法,除语法简练外,并没有其他好处。
前++是先加再取值,后++是先取值再加。
也就是i=3时,i++和++i的结果都是让i=4,但i++的值是3,而且++i的值是4。
一般来讲,单独使用i++和++i时,并没有多少区别,都等价于 i = i+1;
而 a = ++i,则等价于 i = i+1;a = i;
而 a = i++,则等价于 a = i; i = i++;
这么写相信已经明白了i++和++i之间的区别了吧。但是for循环里的表达式用i++ 和 ++i有区别吗?
答案是肯定的,从循环次数来说二者完全一样,但是使用i++比使用++i 所需要的辅助空间少,这个可以展开汇编看到,i++由于需要保存之前的值,需要一个辅助存储空间。而++i直接用和覆盖原空间即可详细解释如下:
由于i++的值还是i 的原来的值,所以要先保留原始值,这样理解:
j=i++解释为以下几条语句:
temp=i;
i=i+1;
j=temp;
而j=++i解释为:
i=i+1;
j=i;
如果只是简单类型没什么,但如果是类的话,temp的创造可是大代价的。这就是为什么很多人喜欢在循环中使用++i。
但在循环中,我们不关心其值,只关心其结果,所以是一样的。
- (i++)+(i++)与(++i)+(++i)
- (i++)+(i++)与(++i)+(++i)
- (i++)+(i++)与(++i)+(++i)
- 实验:(++i)+(++i)+(++i) 与 (i++)+(i++)+(i++)
- (++i)+(++i)+(++i) 与(i++)+(i++)+(i++)表达式
- i++,i--与++i,--i 研究
- ++i *=i与 i++*= i
- ++i与i++
- i++与++i区别
- i++与++i
- C# ++ i 与 i ++
- i++与++i详解
- i++ 与++i
- i++与++i区别
- i++ 与 ++i
- ++i与i++
- ++i 与 i++
- ++i与i++区别
- JAVA---JDK环境变量的配置
- Sql数据库中Bit类型知识点
- Java相关工具在Windows环境变量中的配置
- VS C++中调用C#动态库静态函数
- java Post 文件
- i++ 与 ++i
- C#编程之经典算法——排序(三)
- 最长重复字串和两字符串中最长公子子串问题
- 交叉编译的一些常用Make语法(转)
- 用GDB调试程序
- 使用JDBC插入大量数据的性能测试
- Binding类--备注
- android自定义权限
- Drupal training planing