大神大神,赐教啊,关于C语言指针问题。

关于指针,下面的a=b,前面没有*,感觉不会改变c1,c2的值啊·我觉得*a=*b·才会改变啊所以题中只有(*a)++起作用吧,但是答案不是这样的,为什么呀·voidfu... 关于指针,下面的a=b,前面没有*,感觉不会改变c1,c2的值啊·我觉得*a=*b·才会改变啊所以题中只有(*a)++起作用吧,但是答案不是这样的,为什么呀· 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);}
展开
 我来答
solmyr_biti
2013-03-12 · TA获得超过216个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:43万
展开全部
void fun (char *a,char *b)
{
a=b; //相当于把main函数的p2赋值给了a,特别注意,此时p1/p2值是不可能改变的,只能改变两个局部变量a和b。
(*a)++; // 相当于p2指针指向的c2进行了++
}

所以,最后答案应该是打印出:
Ab
tmfengxin1
2013-03-12 · TA获得超过623个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:105万
展开全部
a=b是不会改变c1,c2的值,只有(*a)++修改了c2的值,
void fun (char *a,char *b)
{
a=b; //这句话就是让a和b都指向了b指向的那个位置
(*a)++;//由于上面一句的原因,此时a指向的是c2,因此*a就是字符‘a’,对*a++也就是将‘a’变成‘b’
}
main ()
{
char c1='A',c2='a',*p1,*p2;
p1=&c1;//
p2=&c2;
fun(p1,p2);
printf("%c%c\n",c1,c2);//因此输出的就是 Ab
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彭珂的课堂
2021-05-26 · IT资讯、技能教学、学习经验分享。
彭珂的课堂
采纳数:98 获赞数:343

向TA提问 私信TA
展开全部

C语言_071_指针的定义和使用_上

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序猿3号
2013-03-12 · TA获得超过1810个赞
知道小有建树答主
回答量:1029
采纳率:33%
帮助的人:753万
展开全部
这个。。没仔细看,上面有fun函数。
追问
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);}
追答
结果是Ab,指针是一个地址,本题目中,通过fun函数,a指针指向了c1,b指针指向c2,当执行
a = b;
时,a 指向了c2, 再*a,取出了这个c2地址的值,也就是‘a’,然后再++, 就得到结果了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式