选择题
有以下程序:
#include<stdio.h>
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。
提交答案
关闭