问题
单项选择题
有以下程序void fun(char *a, char *b){ a=b; (*a)++; }main(){ char c1='A',c2='a',*p1,*p2;p1=&c1; p2=&c2; fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是()
A、Ab
B、aa
C、Aa
D、Bb
答案
参考答案:A
解析:
本题考查了地址的调用。在子函数fun()中,a,b分别存储的是存放“A”,“a,,两个字符所在存储单元的地址。但在子函数中直接改变了指针变量a所指存储单元(a=b,即b所指单元)中的值,使其变为“b”,故子函数执行结束时,c1的值不变,c2的值改变。