一道C语言的选择题,真心看不懂,求解释,

有以下程序#include<stdio.h>voidfun(char*c,intd){*c=*c+1;d=d+1;printf(“%c,%c”,*c,d);}main()... 有以下程序
#include <stdio.h>
void fun(char *c,int d)
{ *c=*c+1; d=d+1;
printf(“%c,%c”,*c,d);
}
main()
{ char b=’a’, a=’A’;
fun(&b,a);
printf((“%c,%c\n”,b,a);
} 程序运行后的输出结果是( )
A) b,Bb,A B)b,BB,A C)a,BB,a D)a,Ba,B

求解释,为什么选A?
展开
 我来答
走马看飞腾0954
2013-12-28 · TA获得超过445个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:254万
展开全部
道理很简单;
fun函数中指针才能改变调用函数的值,就像&b一样,她的值在fun函数中被改变了,a则不会
更多追问追答
追问
看不懂,可以解释再详细一点吗?谢谢了。
追答

lost4register
2013-12-28 · TA获得超过748个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:95.6万
展开全部
c是传地址,d是传值,
c里面是b的地址,d=a,
程序结束后,b+1,a不变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-28
展开全部
*c=*c+1,表示对指针c所指的内容+1,*的优先级高。形式参量c是用实际参数b的地址,所以这个地址里的内容被改成了b,b本身就已经变成字符‘b'。而d传递的是一个参数,且没有返回值,所以d=d+1,仅仅是对d这个变量加1,并不影响实际参数也就是a,所以d=B,a还是A
更多追问追答
追问
b本身就已经变成字符‘b'是什么意思?没有理解。
追答
变量b本来是字符‘a',然后传递了字符’a'的地址,&a,这个是当作函数的参数传递进去的。也就是void fun(char *c,int d)这里c是&a,*c=*c+1,就直接改变了变量b的值,b原来是字符‘a’,现在加一就是字符‘b’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式