一开始没弄清楚++i先自增,再运算,i++先执行,再自增是怎么回事,这次让其在一个for循环中得到了答案,贡献给大家。
代码如下
#include<stdio.h>
int main()
{
int i = 0;
printf("Please Input a chars:\n");
while (getchar() != '\n')i++;
printf("Total input chars are: %d\n", i);
int a=1,sum=0,j = i;
printf("(j,a)\n");
while (j--)
{
printf("(%d,%d)\n", j,a++);//j--是先运算,在自减,当语句执行到此条,j的值就变成2了。同理,现在a=1。
sum = sum + a;//当执行此处,a的上一条语句已经加1,故在此处a=2;
printf("(sum,a)=(%d,%d)\n", sum,a);//同理,这里a=2,如果上一条语句是sum=sum+(a++);这里就变成3了。
}
return 0;
}
运行结果如下
Please Input a chars:
123
Tatol input chars are: **3**
(j,a)
(2,1)// j已经执行过一次j--l,故这里是2
(sum,a)=(2,2)//a已经执行过一次a++了,故是2
(1,2)
(sum,a)=(5,3)
(0,3)
(sum,a)=(9,4)
请按任意键继续. . .
总结:
自增或者自减,在一个语句块中,如果i++运行后还有与i有关的运算,后面的i值已经被赋值为已经增加的值运算。
如:j–,a++ 就是这样
需要有什么不明白的加微信一起学习
wx_1160154111