选择题

有以下程序:
#include
main()
{
    ​​​​​​int m=1,n=2,*p=&m,*q=&n,*r;
    ​​​​​​r=p;
    ​​​​​​p=q;
    ​​​​​​q=r;
    ​​​​​​printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是(     )。

【正确答案】 B
【答案解析】

本题首先让指针变量 p 和 q 分别指向 m 和 n 的地址空间, 然后将 p 赋值给 r, 让 r 指向 m, q 赋值给 p, 让 p 指向 n, 再将 r 赋值给 q, 让 q 指向 m, 因此最后 p 指向 n, q 指向 m。 答案选择 B 选项。