VC++简单计算题?求仔细解释.27.有以下程序 #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)1,3B)2,3C)

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 07:04:12
VC++简单计算题?求仔细解释.27.有以下程序#include void f(int *p,int *q);main(){ int m=1,n=2,*r=&m;  f(r,&n); printf("

VC++简单计算题?求仔细解释.27.有以下程序 #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)1,3B)2,3C)
VC++简单计算题?求仔细解释.
27.有以下程序
#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)1,3
B)2,3
C)1,4
D)1,2

VC++简单计算题?求仔细解释.27.有以下程序 #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)1,3B)2,3C)
选A
这是考察指针做参数的题目
因为r=&m,所以r里存的是m这个变量的地址,r作为f的参数,把r的值传递给p,所以p里存的就是m的地址,p=p+1;p里存的地址发生了改变,但原来地址里存的值不变,仍然是1,所以输出是m是1;f的第二个参数是&n,就是把n的地址给了q,而*q就是q中地址里放的值,就是2,*q=*q+1;
q中地址里放的值发生了改变,就是加了1,变成3,也就是说n的值变成3了