c语言中的++ i和i++有什么区别呢?

在C语言中,`++i` 和 `i++` 都是自增操作,但它们在执行时有一些微妙的区别。

1. `++i`:这被称为前缀递增操作符,它表示先将变量增加1,然后再使用变量的值。也就是说,变量会在表达式中被使用前就已经加了1。

2. `i++`:这被称为后缀递增操作符,它表示先使用变量的值,然后再将变量增加1。也就是说,变量会在表达式中被使用后再加1。

这两者的差异在于表达式的值是什么。对于 `++i`,表达式的值是增加后的值,而对于 `i++`,表达式的值是使用之前的值。

下面是一个示例来说明这两者之间的差异:

```c

int i = 5;

int a = ++i;  // a = 6, i = 6

int j = 5;

int b = j++;  // b = 5, j = 6

```

总之,两者的最终结果都是将变量增加了1,但是在它们的使用时机和表达式值上有所不同。



1、首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值
2、++i和i++都是分两步完成的。因为++i
是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i
=
a
=b,即
++i
是一个左值(可被寻址的值);i++
的后面一步是自增,不是左值。(2的两步分解与左右值的因果关系只是我的直觉,对错还待考证)
3、++i
和i++
的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,就好像指针delete以后一定要赋予0一样,我们要注意i值在程序流中的变化。
扩展资料:
关于对循环i++的困惑:
for(int
i=0;i<10;i++){
System.out.println(i);
}
过去我们都知道i++和++i的字面区别是在自增,i++是运行的时候为原来的数,运行完后自增。所以一直对这里的i++以为也是同样的操作。
进行步骤如下,i=0,满足i<10,则进行i++操作。由于i++是当前运行的时候不自增,所以是i为0,然后执行输入语句,输出0.
接着返回自增条件i变成1.以此进行循环。所以最终调试出来的结果是0,1,2,3,4,5,6,7,8,9.i=10的时候不满足i<10这个条件,跳出循环体。
所以执行步骤是:
1、i=0
2、i<10
3、i++
4、输出。
参考资料:搜狗百科——C语言

~

#17244637762# C语言中i++与++i的区别 ******
#巢乔# i++ 是先使用变量的值,后加1; ++i 是先自加1,然后使用变量的值. 本例中: str[j++]=str[i]; 相当于:先赋值,后自加. str[j]=str[i]; j++;

#17244637762# C语言中++i与i++有没有区别? ******
#巢乔# ++i是先加后用,i++是先用后加 比如i=1,++i用时i=2了;i++用时i=1,用后才=2

#17244637762# ++之惑:C语言中++i和i++的区别? ******
#巢乔# ++i是现加一再用而i++是现用再加一;如i=2;j=++i,k=i+;则j=3,k=2;相同的是经过变化后i都为三;(我们也正在学这呵呵)

#17244637762# 关于C语言 ******
#巢乔# i++ 是运行一次i后再读取每次+1 ++i 是运行前就+1,以后再每次+1 比如i=2;执行语句i++;后,该表达式的值为2,而i的值为3; 执行语句++i;后,该表达式的值为3,i的值也为3..

#17244637762# 在C语言中,++i和i++又什么区别 ******
#巢乔# 这么麻烦啊! ++i是先进行加法,然后再赋值(赋值是i) i++是先赋值(整体是i++),再进行加法

#17244637762# 请问C语言中i++和++i有什么不同?呀详细通俗的解释,不要教材上的原话.学了C语言可以开发出像QQ这样的... ******
#巢乔# 这里我们先讲 i++ 不要记教材上的东西..始终记得,++在后,比如在赋值过程中 j = i++; 那么执行语句的流程是j = i; i = i + 1;也就是说先使用再自加. 如果 ++ 在 前,那么过程是相反的.那就是先自加再使用.比如 j = ++i; 先自加是 i=i+1; ...

#17244637762# 请高手指点,c语言中,++i和i++有啥区别? - ******
#巢乔# ++i:在使用i之前,先使i的值加一,i++在使用i之后,使i的值加一.比如i=3;a=i++;执行时先让a=i,a的值为3,然后i的值加一,变成为4.而i=3;a=++i;执行完后,i先自加一,变成四 然后再赋值 a的值为四.

#17244637762# C语言中++i 和i++有啥区别啊? - ******
#巢乔# 关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的: 1.后置运算:k++表示先运算,后自加. 意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加. 那么,【“后面”后到什么程度呢?要后到当前的语...

#17244637762# C语言中++i与i++有没有区别? - ******
#巢乔# 就是它们单独成为一个语句的话,没有区别.例如:i++;++i;如果和其它的组成一个表达式,则就有区别,例如:i=2;3+(++)i 和3+i++;它们值是不一样,第一个是i先加1变成3再求和 第二个是i先求和,再加1;就是++i 先自加后运算 i++ 先运算后自加

#17244637762# c语言里面i++和++i有什么区别 - ******
#巢乔# 程序中单独把 i++; 或者 ++i; 作为一条语句时,两个是没有区别的. 但要是和其它式子一起进行复合运算,通常会包含两种操作,比如: a=i++; 和 a=++i; 这两个式子的不同点就是:第一个式子会先把i的值赋给a,然后再自身加1 ,即等价于 a=i; i=i+1;.第二个式子正好相反,先进行自身加1操作,再把加1 后的值赋给a, 即等价于 i=i+1;a=i; . 望采纳!!

为传递更多家电数码信息,若有事情请联系
数码大全网