A-A+

有以下程序: #include <stdio.h> void fun(char *a ch

2022-08-06 02:53:27 问答库 阅读 175 次

问题详情

有以下程序: #include <stdio.h> 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%cn",c1,c2); } 程序运行后的输出结果是()。
A.Ab
B.aa
C.Aa
D.Bb请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:A
解析:本题中fun函数的形参是两个指向字符型数据的指针,其功能是把b赋给a,然后将a所指存储单元里的变量值加1。在main函数中,p1里存放的是c1的地址,p2里存放的是c2的地址,经函数调用fun(p1,P2)后,p2的值赋给了p1,使p1和p2都指向了c2,而(*a)++又使'a'的值加1变成了'b',所以此时c2的值为'b',而c1的值没变,仍为'A'。程序改变的是p1的地址和c2的值。

考点:程序