作业帮 > 综合 > 作业

/* Note:Your choice is C IDE */ #include "stdio.h" void main

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/14 06:39:44
/* Note:Your choice is C IDE */ #include "stdio.h" void main() {int i=8; printf("%d\n%d\n%d\n%d\n);
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
结果是
8
7
7
8怎么来了,请大哥大姐帮忙,
这个和编译器有关,
printf参数出栈的顺序:从右到左,
自增运算i++该语句执行完毕再进行,
自增运算++i立即执行.
所以i=8,先i--,得到i不变(下一条语句时i才等于7,这也就是为什么第二个输出的是7,第一个输出的是8没有改变),再i++,也得到i不变(下一条语句时i才等于8),执行--i,i立刻减去1,得到i=7(也就是8-1=7,所以第三个输出的是7),再执行++i,i立刻加1,得到i=8(也就是7+1=8,所以第四个输出的是8)
另外,可以看一下这个代码.
int main(int argc,char* argv[])
{
int b=1;
printf("\n%4d%4d%4d%4d\n",b,b++,++b,b);
printf("\n%4d\n",b);
b=1;
printf("\n%4d%4d%4d%4d\n",b++,b++,b++,b++);
printf("\n%4d\n",b);
b=1;
printf("\n%4d%4d%4d%4d\n",++b,++b,++b,++b);
printf("\n%4d\n",b);
getch();
return 0;
}