执行下面程序后,a和b的值为多少?
int main()
{
int a, b;
int *x, *y;
x = &a;
y = &b;
*x = 10;
*y = *x;
x = y;
*x = 20;
return 0;
解题分析:
int main()
{
int a, b;
int *x, *y;
x = &a;
y = &b;
//执行到这里,指针x指向了a, y指向了b
*x = 10;
//*x代表的就是a,相当于执行a = 10
*y = *x;
//*y就是b,相当于执行b = a ;(a的值为 10);
x = y;
//把y的值赋给x,y的值是什么?是b的地址,这样就相当于x = &b;
*x = 20;
//现在的x指向了b,*x就是b,b = 20;
return 0;
}
答案 10 20