关于i++和++i
前言
总把++i和i++搞混,记不清他们的区别,所以翻了翻书,整理了一下
一、什么是自增自减运算符
自增:++
自减:- -
两者均为单目运算符,作用是使自变量的值加一或减一,其优先级高于所有双目运算。
二、举例
代码如下:
在这里插入代码片
#include<stdio.h>
int main()
{
int i=3,j=10,m,n,p,q;
m=++i;//++i是先自加,在赋值 ;先执行 i=i+1,在将i值赋给m
n=i++;//i++是先赋值,在自加 ;先把i值赋给n,然后在 执行 i=i+1。
p=–j;
q=j–;
printf(“i=%d,j=%d,m=%d,n=%d,p=%d,q=%d”,i,j,m,n,p,q);
return 0;
}
运行结果:
由结果可知,m=n,p=q,则i++和++i执行最终的结果相同,只是变化前后顺序不同。个人觉得为了方便记忆,可以这么记,++i是‘+’在前面,所以是先自加,再赋值;i++是‘+’在后面,所以是后自加,先赋值。
总结
++和- -是自增自减运算符,它有两种形式,分别为前缀(eg:++i)和后缀(eg:i++)形式。
前缀:运算符在变量前面,表示对变量先自动加一或减一,然后再参与其他运算,即先改变变量的值然后使用。
后缀:运算符在变量后面,表示先参与其他运算,然后对变量先自动加一或减一,即先使用后改变。