龙空技术网

C语言自增(++)自减(--)运算符原理解析

大家好我是小小白 214

前言:

现时同学们对“c语言减等”大体比较关心,兄弟们都需要学习一些“c语言减等”的相关文章。那么小编同时在网络上收集了一些关于“c语言减等””的相关资讯,希望大家能喜欢,兄弟们快快来学习一下吧!

关键:自增减(++/--)前置:在运算之前改变变量

自增减(++/--)后置:在运算之后改变变量

要真正的理解这两句话的内涵,自增减前置在运算之前改变变量,运算时是不变的,即使运算过程中遇到自增减后置时变量也是不变的,因为自增减后置是在运算完成后改变变量

int main(){	int i = 0;	int j = i++ + ++i;//++i优先级高于i++,所以相当于int j=++i + i++;                       //此时i=0,1(此时i=1)+1(此时i=2)=2	int k = --i + i--;//此时i=2,(此时i=1)1+1(此时i=0)=2	printf("%d %d %d\n", i, j, k);	return 0;}

​当运行int j = i++ + ++i;

分析优先级:自加高于+,两个自加同级从左向右计算;其中++i的优先级比i++高,即变为

int j=++i + i++

运算之前:因为++i,在运算之前使得变量i加一(0+1=1);此时i=1

运算之中:加上i++,因为是后置++,所以此时i仍然是1,所以为1+1=2赋值给j

运算之后:因为i++,在运算之后使得变量i加一(1+1=2);此时i=2

当运行int k = --i + i--;

运算之前:因为--i,在运算之前使得变量i减一(2-1=1);此时i=1

运算之中:加上i--,因为是后置--,所以此时i仍然是1,所以为1+1=2赋值给j

运算之后:因为i--,在运算之后使得变量i减一(1-1=0);此时i=0

int main(){	int i = 0;	int j = i + i++;//此时i=0,0+0(此时i=1)=0	printf("%d %d\n", i, j);	return 0;}

​运行int j = i + i++;

运算之前:无

运算之中:加上i++,因为是后置++,所以此时i仍然是0,所以为0+0=0赋值给j

运算之后:因为i++,在运算之后使得变量i加一(0+1=1);此时i=1

int main(){	int i = 0;	int j = i + ++i;//此时i=0,1+(此时i=1)1=2	printf("%d %d\n", i, j);	return 0;}

​运行 int j = i + ++i;

分析优先级:自加高于+,即变为int j=++i + i;

运算之前:因为++i,在运算之前使得变量i加一(0+1=1);此时i=1

运算之中:加上i,此时i仍然是1,所以为1+1=2赋值给j

运算之后:无

标签: #c语言减等