大神大神,赐教啊,关于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);} 展开
main ()
{char c1='A',c2='a',*p1,*p2;
p1=&c1;p2=&c2;fun(p1,p2);
printf("%c%c\n",c1,c2);} 展开
4个回答
展开全部
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
}
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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言_071_指针的定义和使用_上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个。。没仔细看,上面有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’,然后再++, 就得到结果了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询