急求,一个c语言问题!!!!!!
来源:百度知道 编辑:UC知道 时间:2024/06/05 10:04:39
#include <stdio.h>
void main()
{
int j = 5, i = 5;
int q, p;
p = (i++)+(i++)+(i++);
q = (++j)+(++j)+(++j);
printf("%d,%d,%d,%d",i,j,p, q);
}
答案是多少分别,是怎么计算出来的 要详细一点的
void main()
{
int j = 5, i = 5;
int q, p;
p = (i++)+(i++)+(i++);
q = (++j)+(++j)+(++j);
printf("%d,%d,%d,%d",i,j,p, q);
}
答案是多少分别,是怎么计算出来的 要详细一点的
输出8,8,18,21
p = (i++)+(i++)+(i++);
第一个i++先返回了i的值5,然后加1,变成了6
第二个i++先返回了i的值6,然后加1,变成了7
第三个i++先返回了i的值7,然后加1,变成了8
所以p=5+6+7=18,i=8
q = (++j)+(++j)+(++j);
第一个++j先j加1变成了6,再返回j的值6
第二个++j先j加1变成了7,再返回j的值7
第三个++j先j加1变成了8,再返回j的值8
q=6+7+8=21,j=8
最后输出8,8,18,21
8,8,15,24
i++是先计算后自加,也就是先算完p=i+i+i(此时i=5)后而对每个i加1,而++j相反,即先对每个j加1后(此时j=8)再计算q=j+j+j;
数学问题?
结果是5 8 21 21 i++,i不会变++j,j会变,p=6+7+8,q=6+7+8
VC++ 6.0的运行结果是8 8 15 22
我也想不通
请哪位高手解答一下