读书人

初学者的有关问题!

发布时间: 2012-02-27 10:00:22 作者: rapoo

菜鸟的问题!!!
int i ;
i=3 ;
-i++ ;
printf("%d", i );

最后输出的i 应该是对少啊 ?
关键是怎么算的 请讲详细点!!

[解决办法]
#include <stdio.h>
void main(){
int i,t ;
i=3 ;
t=-i++ ;
printf("%d\n%d\n", i,t );
}
i最后结果是4.而-i++的值是-3.
这里要注意的是负号运算符与"++"运算符同优先级,而结合方向为"自右向左",即t相当于-(i++),先取出i的值3,因为i++是先用3参与运算再增值,所以输出t=-3,然后i增值为4.

[解决办法]
int i ;
i=3 ;
-i++ ; //这条语句等价于i = i + 1;负号没有负作用可以忽略,因为这里-i++没有赋值给任何变量。
printf("%d", i );

再不懂就。。。

读书人网 >C语言

热点推荐