前言:
现时同学们对“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语言减等