各位好心的大哥大姐大叔大婶来救救新手啊!这里该怎么解释啊!详细说明一下!
执行下列程序的输出结果是()。main( )
{
int x=5,y;
y=++x*++x;
printf('y=%d\\n',y);
}
49
y的值为何是49?帮忙详细讲解一下!拜托了!!!
程序代码:#include"stdio.h"
main( )
{
int x=1,y;
y=(++x)*(++x);
printf("y=%d\n",y);
}
这个程序执行到y的赋值表达式时,先把x自加到2,继续后面的第二个x自加到3,因为是同一个x,且在一个表达式中,所以值都是3,结果为9.
程序代码:#include"stdio.h"
main( )
{
int x=1,y;
y=(++x)*(++x)*(++x);
printf("y=%d\n",y);
}
这里的x变化,先是x自加到2,紧接着自加到3,好,关键位置:这里两个括号的值可以相乘了,而且前后都是一个变量x,即:(3*3)*(++x)那个3*3立即得9,即9*x;这里的x会自加到4.也就是说表达式自左至右执行,一旦可以得出结果立马就执行。
程序代码:#include"stdio.h"
main( )
{
int x=5,y;
y=2*(++x)*(++x)/2;
printf("y=%d\n",y);
}懂了没?