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

发布时间:2024-05-14 12:02 发布:上海旅游网

问题描述:

#include<stdio.h>
void main()
{
int i=3;
i=-i++;
printf("%d",i);
getch();
}
输出结果是-3。既然i增值到4,为什么不显示为4??还有增值不考虑符号?

问题解答:

之所以输入结果是-3是因为 i++是先运算后增值的,只有在算完i=-i++后i的值才会自增的
如果是++i的话就是先增值后运算,输出的结果就是-4了

我试过输出结果是 -2

-i++ = -3自加1 = -2

然后 把 -2 赋给 i

如果是-i++
输出结果是 4

如果是 i = -i++
输出结果是 -4

”-“和“++”是同级运算符,所以只会执行从左至右的第一个,所是-3,自增自减运算符在不同的编译系统里处理会有不同的结果,为了方便理解可以转换为i=i+1或i=i-1放在适合的地方

i=-i++;
如果该为i=-(++i);
结果就是4了。具体原因挺麻烦的,你找本书看吧。

热点新闻