有以下程序:  #include<stdio.h>  void f(int *p,int *q);  main()  {   int m=1,n=2,*r=&m;   f(r,&n);   printf("%d,%d",m,n);  }   voi

admin2022-10-24  26

问题 有以下程序:
 #include<stdio.h>
 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、2,3
B、1,3
C、1,4
D、1,2

答案B

解析 在f(int*p,int*q)函数中,执行“p=p+1;”是将p所对应的地址加1,而“*q=*q+1;”是将q所指向n的地址所对应的值加1,所以m的值没有变,而n的值则变为3。故本题答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/sid0FFFM
0

最新回复(0)