有以下程序:#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",

admin2009-01-15  31

问题 有以下程序:#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

答案4

解析 程序中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。
转载请注明原文地址:https://kaotiyun.com/show/Z4Hp777K
0

相关试题推荐
最新回复(0)