问题 单项选择题

若有以下程序:
void g(int **q)

(**q) ++;
(*q) ++;

void main()

int line [5];
int *p=line;
for (i=0; i<5; i++)

*p=i;
g(&P);

for (i=0; i<5; i++)
cout<<line[i];
cout<<end1;

该程序运行后的输出结果为( )。

A.12345

B.01234

C.11111

D.55555

答案

参考答案:A

解析: 本题考核指针的运用。主函数的for循环中向函数g()传入实参&p,则在函数g()中执行“(**q)++;”相当于执行“(**(&p))++”,即(*p)++,其结果就是对相应的数组元素值加1。函数g()中执行“(*q)++;”相当于执行“(*(&p))++”,即p++。其结果为指针p指向下一个数组元素。这样通过for循环给数组元素分别赋值1、2、 3、 4、 5。

单项选择题
判断题