求解(求姐)
为什么左边例题中的 printf("%d、n",a); 中a的值不受上面的影响啊啊啊啊
为什么左边例题中的 printf("%d、n",a); 中a的值不受上面的影响啊啊啊啊
2017-03-07
受影响了呢,你注意到没,a一共被赋值5次,进行了4次运算,流程是这样的
int a=100; //这条给a赋值100;
printf("%d\n", a++); //在这条语句a先取值再运算,于是会先取a的值100输出,然后再进行运算,这条语句执行完后a=100+1=101;
printf("%d\n", ++a);//在这条语句a运算以后再取值,也就是先进行a=a+1=101+1=102,再将运算过后的a的值进行输出,即102(这时a的值已经为102了);
printf("%d\n", --a);//这条语句同上,也是a运算后再取值,先进行a=a-1=102-1=101,再将运算过后的a的值输出,即101(此时a的值已经变化为101了);
printf("%d\n", a--);//这条语句的话是先取值再运算,也就是先将101这个值输出,输出后再对a进行运算,即a=a-1=101-1=100(运算过后a这时的值为100);
printf("%d\n", a+1);//这一条语句是不会对a的值有影响的,只是输出结果会变为100+1即101,但是a的值还是100;
printf("%d\n", a);//所以最后a的值为100;
举报