#include<stdio.h> main( ) { int a=1,b=2; for(;a<8;a++){b+=a;a+=2;} printf("%d,%d\n",a,b); }
程序输出结果为10,14为什么不是9,14请详解此处a++的用法,还有如果换成++a会怎样谢谢...
程序输出结果为10,14
为什么不是9,14
请详解此处a++的用法,还有如果换成++a会怎样
谢谢 展开
为什么不是9,14
请详解此处a++的用法,还有如果换成++a会怎样
谢谢 展开
3个回答
展开全部
第一:看程序执行:
初值a=1,b=2
1<8 所以 b=b+a=2+1=3
a=a+2=1+2=3
①然后执行for语句中a++,a=4
4<8 所以 b=b+a=3+4=7
a=a+2=4+2=6
②然后执行for语句中a++,a=7
7<8 所以 b=b+a=7+7=14
a=a+2=7+2=9
③然后执行for语句中a++,a=10
判断10不小于8,for语句执行完。结果 10,14
第二:将for语句中a++改为++a,与上面输出结果一样。因为①②③处执行a++和执行++a
是一样的,不影响后面的判断及结果输出。
第三:个人愚见,你认为输出结果是9,14是没有理解清for语句的执行吧?而不是误区在
a++与++a。
初值a=1,b=2
1<8 所以 b=b+a=2+1=3
a=a+2=1+2=3
①然后执行for语句中a++,a=4
4<8 所以 b=b+a=3+4=7
a=a+2=4+2=6
②然后执行for语句中a++,a=7
7<8 所以 b=b+a=7+7=14
a=a+2=7+2=9
③然后执行for语句中a++,a=10
判断10不小于8,for语句执行完。结果 10,14
第二:将for语句中a++改为++a,与上面输出结果一样。因为①②③处执行a++和执行++a
是一样的,不影响后面的判断及结果输出。
第三:个人愚见,你认为输出结果是9,14是没有理解清for语句的执行吧?而不是误区在
a++与++a。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询