问题描述:
void 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,-8,-9与教程给出的答案不符.希望能帮我祥解一下 谢谢!!!!!!
问题解答:
++(--)i是先自加(减)后,i++(--)是运行过了再自加(减).
所以++i 输出9,次时i=9;--i则输出8;(此i=8)i++=9;(但是要在输出以后才变为9,所以输出的结果是8,此时i=9);同理i--=8但是输出为9.
后面的只是加个负号,让他变为负数计算罢了.原理相同的.
这问题很无聊
我真怀疑C语言的发明人,发明这个时脑子是不是发热
第1个输出的是 ++i i=8
所以输出9
第2个输出的是--i 这时候i=9所以输出8
第3次输出的是i++ 这时候i=8所以输出的i++的植是8但i=9了
第4次应该输出的是-9 最后一次是-8
你看这次对了吗? 不明白可以加qq67766582
void main(){ int i=8;
printf("%d\n", ++ i); 这一步加上1 得到9,先加再取值
printf("%d\n",--i); 得到8 先减再取值
printf("%d\n",i ++ ); 得到 8 实际的i是 9先取值再自加
printf("%d\n",i--); 得到 9 实际运算后i 是8先取值再自减
printf("%d\n",-i ++ );得到-8 运算之后i本身是9
printf("%d\n",-i--);得到 -9 运算之后i 本身是 8
9
8
8
9
-8
-9
这样才对