printf("++i=%d \n++i=%d \n--i=%d \n--i=%d\n",++i,++i,--i,--i); 解释一下输出结果为什么等于8 7 6 7
解决时间 2021-03-09 11:26
- 提问者网友:wodetian
- 2021-03-09 08:35
#include
int main(void){
int i=8;
printf("The raw value: i=%d\n", i);
printf("++i=%d \n++i=%d \n--i=%d \n--i=%d\n",++i,++i,--i,--i);
return 0;
}
最佳答案
- 五星知识达人网友:不甚了了
- 2021-03-09 09:06
您好,这样的:
#include
int main(void){
int a=15;
long float b=123.1234567;
// 原来b的定义为 float b=123.1234567;
// 经读者@邓小良反馈,笔者发现会溢出,在前面加了long
double c=12345678.1234567;
char d='p';
printf("a=%d\n", a);
printf("a(%%d)=%d, a(%%5d)=%5d, a(%%o)=%o, a(%%x)=%x\n\n",a,a,a,a); // %% 可以输出 %
printf("a=%f\n", b);
printf("b(%%f)=%f, b(%%lf)=%lf, b(%%5.4lf)=%5.4lf, b(%%e)=%e\n\n",b,b,b,b);
printf("c=%f\n", c);
printf("c(%%lf)=%lf, c(%%f)=%f, c(%%8.4lf)=%8.4lf\n\n",c,c,c);
printf("d=%c\n", d);
printf("d(%%c)=%c, d(%%8c)=%8c\n",d,d);
return 0;
}
全部回答
- 1楼网友:傲气稳了全场
- 2021-03-09 10:33
i++ 是个表达式,它的值等于i。相当于 t=i; i=i+1; 输出的是t的值。
也即是先算后加。所以i++=16.
j=(i++)+i=16+16=32.
我要举报
大家都在看
推荐资讯