main(){
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}
希望有朋友帮我解答一下。为什么
结果为9,8,8,9,-8,-9
main(){
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}
希望有朋友帮我解答一下。为什么
结果为9,8,8,9,-8,-9
第一个输出:++i,先加1,然后输出,为i=8+1=9;
第二个输出:--i,先减1,然后输出,为i=9-1=8;
第三个输出:i++,先输出i的当前值8,然后加1,此时i=8+1=9;
第四个输出:i--,先输出i的当前值9,然后减1,此时i=9-1=8;
第五个、第六个的情况和第三个、第四个类似,不同的只是输出多了一个负号。
++i在使用之前+1,i++在使用后+1, 反之-也一样。
如题:++i ,提前+1,所以输出9,i==9;
--i同理,i==8;
i++,使用后再加1;i==8;
i--,此时,上面的原因 i自加1,所以i==9;
到这想必明白了。
前缀和后缀的问题
前缀是先加后运算,后缀是先运算后加
要注意每次的输出i都是在变
printf("%d\n",++i); //先加再运算 所以打出的结果是9
printf("%d\n",--i);; //先减再运算 所以打出的结果是8
printf("%d\n",i++); //先运算再加,所以打出的结果是8 (实际上i已经变成9了)
后面的一样的道理