画眉鸟的眼睛哪几种好:C语言问题2

来源:百度文库 编辑:高校问答 时间:2024/05/03 03:03:07
void main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n", i,--i,i--,i ,-i--);
}

在式中,先对最后一项“-i--”求值,结果为-8,然后i自减1后为7。 再对“-i ”项求值得-7,然后i自增1后为8。再对“i--”项求值得8,然后i再自减1后为7。再求“i ”项得7,然后I再自增1后为8。 再求“--i”项,i先自减1后输出,输出值为7。 最后才求输出表列中的第一项“ i”,此时i自增1后输出8。

这些解释是咱理解的呀!
我问的是算完i时,算下一个i时,i为咐要自增1呢

首先你是否明白i--与--i的不同点?前一个是运算后再自减1,后一个是先自减1再参加运算,而且在printf("%d\n%d\n%d\n%d\n%d\n", i,--i,i--,i ,-i--); 中逗号运算符是按从右到左的顺序来依次运算的,这样的话,-i--的值先算为-8,此时i的值经过自减变成7了所以,接下去的i为7,然后是i--,值为7,之后再自减1,变成6,再接着--i,让i直接减1再运算所以--i为5,最后i当然是5
然后按右到左的顺序输出
5
5
7
7
-8
另外说一下,你的程序里面多了一个%d\n这样最后一个将作为存储单元的地址来输出,请注意。

你要问什么?
补:应加编译预处理#include <stdio.h>