#include <stdio.h>
main()
{ int k,n,m;
n=10;m=1;k=1;
while(k++<=n)m*=2;
printf("%d\n",m);
}
我的理解是:
k=2 m=2
k=3 m=4
k=4 m=8
k=5 m=16
k=6 m=32
k=7 m=64
k=8 m=128
k=9 m=256
k=10 m=512
所以最后输出结果应该是512啊,为什么是1024,?求详解!!!!!
同学理解++k和k++的关系吗?
想法没有问题~~~但是差在这了
++k,因为++的优先级高于他们所以说k先自增,
k++,它是先调用k的本身值也就是k=1,然后将++的信息放在内存里,等再次使用k的时候才会自增,也就是说当k等于10的时候,又执行了一次,等执行过后再执行的时候k为11才循环结束,所以会出现这种情况,试试把k++换成++k
有图有真相~~
我们一起学习C语言,有不会的问题再问