#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);
} 答案b,B,b,A 求详解。。。。
题目中的void是什么意思。 是不返回到主函数吗?
那这个题目的输出的第三个字母为什么是b那,无返回值的话不是应该直接输出a了吗
追答fun函数里*c指向了变量b,在fun函数里*c加了1,而*c是指向b的,所以也就是变量b加了1。*c是指向变量b存储的地址,所以它指向的改了一个变量后,这个变量就不是局部变量这样改了。这个不用理。反正就把它理解为*c=b吧。
这个题怎么做那
追答最开始给字符型变量b赋值'a',a赋值'A'。
执行fun()函数,传入b的地址以及a的实体。
在fun()函数中,将b地址的数值加1,因此b的实体变为'b';将临时变量d(其数值等于传入的a)加1,因此d的实体变为'B'。打印输出“b, B, ”。
返回主函数,打印输出b的实体与a的实体。b的实体在fun()函数中被修改过,因此打印输出“b, A\n”