各位好心的大哥大姐大叔大婶来救救新手啊!这里该怎么解释啊!详细说明一下!
执行下列程序的输出结果是()。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); }懂了没?