A-A+
有以下程序:#include <stdio.h> main() { int a=7 b=8
问题详情
有以下程序:#include <stdio.h> main() { int a=7,b=8,* p,*q, *r; p=&a;q=&b; r=p; p=q;q=r; printf(" % d,% d,% d,% d n", * p, * q.a,b);程序运行后的输出结果是()。
A.8,7,8,7
B.7,8,7,8
C.8,7,7,8
D.7,8,8,7请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
解析:程序中P和q是指针变量,它们分别存放了变量a和L的地址,执行P=&a;q=&b;语句后,*p和*q的值就分别为7和8,执行r=P;P=q;q=r;实际上是进行指针变量p和q的交换,即将其存放的a和b的地址进行了交换,也就是P指向了b,q指向了a,此时a,b的值并没有改变,所以输出的*P,*q的值为8,7,而a,b的值仍为7,8。