问题
单项选择题
有以下程序:
#include <stdio.h>
void funl (char * p)
char * q;
q=p;
while( *q! ='\0') (*q) ++;q++;mains( )
char a[ ] = "Program" , * p;
p = &a[3]; fun1 (p); printf("% s \n" ,
A.;
程序执行后的输出结果是( )。A
答案
参考答案:A
解析: 在main函数中,p=&a[3]说明指针p指向a数组的第4个字符(即字符'g');fun1中的q=p意味着指针q也指向了a数组的第4个字符。执行while语句,表达式(*q)++使'g'+1,使 'g'变成了'h';表达式q++使q指向a[4]的起始地址。继续执行while语句,直到遇到'\0'结束循环,返回形参。最终得到的结果是从字符串"Program'的第4个字符开始,每个字符加1。