c语言中i++与++i

如题所述

i++和++i都是c语言里的自增,但是它们自增的顺序不同。++i表示,i自增1后再参与其它运算,而i++ 则是i参与运算后,i的值再自增1。

for循环里循环变量增值用i++,而不用++i是因为在循环结构里需要循环变量来结束循环,而使用i++则会导致本来应该继续的循环少执行一次,所以循环结构里通常都是循环变量在一次循环结构执行完成之后再自增。

扩展资料

i++和++i前置后置区别的例子:

1、a = i++;

相当于 a = i; i++;

2、a = ++i;

相当于 i++; a = i;

3、int i=3;

int j=4;

int a = i++;

int b = ++j;

printf("%d, %d\n", a, b);

结果是3,5。++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j。

参考资料来源百度百科——自增自减运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-21

不一样

一个是 引用后 加+1

一个是 引用前 加+1

cat ex1.c
#include <stdio.h>

void main()
{
        int i,j;
        i=4;
        j=5;
        printf("i++ %d\n",i++);
        printf("++j %d\n",++j);
}

./ex
i++ 4
++j 6

本回答被网友采纳
第2个回答  2020-03-25
C的表达式计算是从右往左的,也就是说i
=
i++
+
++i;的执行顺序是先计算++i
然后把结果再加上i,最后自增1;伪代码如下:
++i;i+i;i++;
因此最后结果就是7
第3个回答  2019-03-21
(i++)有一个延迟的效果。比如i=5,执行后i为6但是i++还是5
望采纳,谢谢