有以下程序: #include void f(int*P,int*q); main( ) { int m=1,n=2,*r=&m; f(r,&n); printf("%d,%d",m,n);

admin2021-04-28  16

问题 有以下程序:
    #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、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/KKz0FFFM
0

最新回复(0)