新手C语言问题,望大家指点指点(关于自增自减运算F)

来源:百度知道 编辑:UC知道 时间:2024/05/15 20:08:33
#include<stdio.h>
void main()
{
int i=3;
printf("%d",-i++);
getch();
}
为什么在TURBO C++3。0里面RUN的结果是8个-3呢?
而且,书上说结果会是4。我不能理解这个答案的由来,望高手指教
大家说下这个程序的运算结果会是什么?

输出-3是正确的
-i++相当于-(i++),如果有printf("%d",-i++),则先取出i的值3,输出-i的值-3,然后i增值为4。

各个编译器的结果都是不一样的。
因为关于这样的运算,在C/C++里都没有一个明确的标准
造成了各种编译器都按自己的编译方法进行编译,结果也自然都不一样了。

如果你不是考计算机证或者有相关内容考试的话,建议不要老在这种地方钻,把更多的时间放在学习真正的C语言编程学习中去

不过就这题而言

i++是先使用完i,i再自增1
也就是先-i,然后输出,所以顺序应该是

printf("%d",-i);
i++;

i++是先取值再加1,++i是先加1再取值
结果是-3