选择题

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

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

语句 p=p+1;只改变指针 p 的地址, 与 p 的内容无关, 所以 m 值没有改变, 而语句*q=*q+1;是改变该指针所指地址中的内容, 所以 n 变为 3, m 不变, 仍为 1, 答案选择 A 选项。