有以下程序:include <stdio.h> main() { int a=7 b=8 * p *q *r; p=a;q=b; r=p; p=q;q=r; pr

计算机 程序, 已帮助 人

有以下程序: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 ", * 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程序的执行是从本程序的main函数开始

答案解析

难度★★☆ 搜索
  • 正确答案: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。