有以下程序:
#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;
}
程序运行后的输出结果是( )。
语句 p=p+1;只改变指针 p 的地址, 与 p 的内容无关, 所以 m 值没有改变, 而语句*q=*q+1;是改变该指针所指地址中的内容, 所以 n 变为 3, m 不变, 仍为 1, 答案选择 A 选项。