c语言长音符后面指定字符,C语言问题 后两个b, A怎么来的不懂,求解

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

qjdhqjdh

2016.03.16

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:46%    等级:10

已帮助:620人

这个题考的就是函数参数传值和传址(指针或引用)的区别了。

首先要看这个fun函数,第一个参数c是一个指针类型,在main中,把b的地址传过来,在fun中对地址里的值进行修改时,main中的b也会相应改变。

而第二个参数d不是指针类型,当main中调用fun函数,把a传进来,其实是将a赋值给了一个参数变量,也就是说,进了函数后,无论函数对第二个参数进行什么操作,都跟main中的a没有关系了。

所以首先你要明白,传指针(带*的)和传值的区别。

接着就开始解析这道题:

1、mian中调用fun,第一个参数传的是b的地址(&为取址符),第二个参数其实传的是变量a代表的'A'的ASC码值(整数)。

2、进入fun后,*c为'a',*c+1就是讲'a'代表的ASC码+1,也就得到了'b',当然,因为c是指针,所以main中的b也随着变成了'b'。

3、d同理,在fun中,d+1就等于'B',但是不同的是这个不影响main中变量a的值。

4、所以fun中输出为b,B,

5、fun函数结束返回main中,输出变量b和变量a的值为b,A(相信这里你已经动了为什么输出这个了)

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值