有以下程序: #include <stdio.h> void fun(char *a, char *b) { a=b; (*a)++;} main() { char c1=’A’,c2=’a’,*p1,*p2;

admin2009-01-15  27

问题 有以下程序:    #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%c\n",c1,c2);    }    程序运行后的输出结果是(    )。

选项 A、Ab
B、aa
C、Aa
D、Bb

答案1

解析 本题中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的值。
转载请注明原文地址:https://kaotiyun.com/show/UmXp777K
0

最新回复(0)