有以下程序 #include void f(int*p); main( ) {int a[5]={1,2,3,4,5},*r=a; f(r);printf(”%d\n”,*r); } void f(i

admin2010-11-02  7

问题 有以下程序
    #include
    void f(int*p);
    main( )
    {int a[5]={1,2,3,4,5},*r=a;
    f(r);printf(”%d\n”,*r);
    }
    void f(int *P)
    {p=p+3;printf(”%d,”,*p);}
    程序运行后的输出结果是(    )。

选项 A、1,4
B、4,4
C、3,1
D、4,1

答案D

解析 本题考查参数的按值传递。调用f(r),函数创建一个整型指针p,然后将r的值传给p,即p也指向a,p=p+3,输出p所指变量的值,即数组右移3位,即a[0+3]的值4,然后,函数结束,指针p被销毁,r中的值不变还指向a[0],所以输出为4,1。
转载请注明原文地址:https://kaotiyun.com/show/KzPp777K
0

最新回复(0)