问题 单项选择题

以下程序的输出结果是( )。
#include<iostream>
using namespace std;
void fun(char**q)

++q;
cout<<*q<<end1;

main()

static char*s[]="HI","HELL0","TEST";
char**p;
p=s;
fun(p);
system("PAUSE");
return 0;

A.为空

B.HI

C.HELL0

D.TEST

答案

参考答案:C

解析: 由程序main主函数入手,调用fun函数,在fun函数中执行“cout<<*q<<end1;”语句实现程序输出。主函数中变量char*s[]为指针数组,char**p表示p指向的字符指针数据。*p就代表p指向的字符指针。语句“p=s;”表明p指向字符指针s,而**p则是s[]中的第一个字符串“HI”。主函数将变量p传值给函数fun(char**q)中的q,在函数体内部首先执行“++q”语句,就是将q的指针指向s中的下一个字符串,即“HELL0”,所以输出语句“cout<<*q<<end1;”输出该字符串值。

判断题
单项选择题