新手求教C语言自增自减问题

main(){int i=8printf("%d\n",++i);printf("%d\n",--i);printf("%d\n",i++);printf("%d\n",i--);printf("%d\n",-i++);printf("%d\n",-i--);}i的初值为8 第2行i加1后输出故为9; 第3行减1后输出故为8; 第4行输出i为8之后再加1(为9); 第5行输出i为9之后再减1(为8) ; 第6行输出-8之后再加1(为9); 第7行输出-9之后再减1(为8) 这是C语言书上的例子,我看不懂的是“第6行输出-8之后再加1(为9); 第7行输出-9之后再减1(为8) ”,输出-8再加1不是-7么?

"对于-i++与-i--这种表达式,不同的编译器或编译环境可能各处不同的解释
无特殊癖好的程序员编程都会加上括号,防止歧义。"
这是错的

正确的说法是, c不同的compiler对一个函数的参数有不同的运算顺序
所以不要把会对变量本身造成影响的代码作为一个函数的参数

最后: 这个问题没有肯定的答案, 你需要把i++ i--这种代码从参数中分离出去. 完毕
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-15
第六行 输出的是 - (i++) 此时i++返回的是 i 的值,因此 输出-8 此时由于输出-i 并不是i的值 i 自增1后为9。
第七行 同样道理 输出的是 -(i--)
第2个回答  2012-07-14
对于-i++与-i--这种表达式,不同的编译器或编译环境可能各处不同的解释
无特殊癖好的程序员编程都会加上括号,防止歧义。
第3个回答  2012-07-20
楼上已经说明了一些问题了,我学的是 C++,在DEV-C++平台下

int i=5;
1)cout<<++i; 输出的是 6
2) cout<<i++ 输出的是5 但是 i 在输出后变成了 6
也就是说, ++i 是先自加再用 i++ 是先用后再自加。
-- 的用是相同的
第4个回答  2012-07-16
自加自减的符号的运算等级要高些。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网