i++和++i的区别

简介:       这也算是一个老生常谈的问题了。       这两个表达式单独写出来并没有什么区别。 #include int main(void) {      int i = 1;      i++;      printf("i++ = %d\n",i); //输出i++的值      i = 1;    //把i的值还原为1      ++i;      printf("++i = %d\n",i); //输出++i的值         return 0; }          但是在某些的场合,他俩的结果是不同的。

      这也算是一个老生常谈的问题了。

      这两个表达式单独写出来并没有什么区别。

#include<stdio.h>
int main(void)
{
     int i = 1;
     i++;
     printf("i++ = %d\n",i); //输出i++的值
     i = 1;    //把i的值还原为1
     ++i;
     printf("++i = %d\n",i); //输出++i的值 
 

     return 0;
}

     

 

 但是在某些的场合,他俩的结果是不同的。

#include<stdio.h>
int main(void)
{
     int i = 1,j = 1,sum = 0,sun = 0;
     sum = i++;
     sun = ++j;
     printf("sum = i++ = %d\n",sum);
     printf("sun = ++j = %d\n",sun);
 
     return 0;
}

 

 

       其实他俩的不同之处在于它们在运算中是先给自己加1了还是先把初值参加运算了,++i会先把自己的初值加上1,然后再进行其他的运算,也就是说不管在何时遇上++i,你都一概把它换成(i+1),而i++则是先用它的初值参加运算,完了再把自身加1,也就是说y = i++;可以理解成为y = i;i++。

目录
相关文章
|
11天前
|
索引
for in 和 for of的区别
for in 和 for of的区别
|
17天前
|
小程序
bindtap和catchtap的区别?
bindtap和catchtap的区别?
12 0
|
7天前
|
存储 前端开发 JavaScript
for...in、for...of、for...Each的详细区别!
for...in、for...of、for...Each的详细区别!
|
3月前
|
SQL 安全 Java
myabtis中#{} 和 ${} 的区别是什么
myabtis中#{} 和 ${} 的区别是什么
|
4月前
|
Web App开发 安全 应用服务中间件
浅谈C/S vs. B/S的区别
浅谈C/S vs. B/S的区别
29 0
|
9月前
|
存储
逻辑移位与算术移位的区别
用一句简单的话来说就是:逻辑移位不需要考虑符号位,算术移位需要考虑符号位,我们都知道。数在计算机中都是以补码的形式来存储的,这才造成了逻辑移位和算术移位的的差别。
193 0
|
10月前
|
Java
While 与 do while 的区别
While 与 do while 的区别
47 0
|
11月前
|
安全 前端开发 Java
WebMvcConfigurationSupport 和 WebMvcConfigurer 区别你知道吗
WebMvcConfigurationSupport 和 WebMvcConfigurer 的使用过程中你是否踩坑了它们的区别是什么快来看看吧
328 0
backgroundColor与 tintColors的区别
backgroundColor与 tintColors的区别
91 0
backgroundColor与 tintColors的区别