huainian 发表于 2014-6-9 16:49:41

帮我分析一下这到题!谢谢!!!

有以下程序
void fun(char *c,int d)
{*c=*c+1;d=d+1;printf("%c,%c,",*c,d);
}
voidmain()
{char a='A',b='a';fun(&b,a); printf("%c,%c\n",a,b);
}
程序运行后的输出结果是______。
A) B,a,B,a   B) a,B,a,B   C) A,b,A,b   D) b,B,A,b

折心灬小轩 发表于 2014-6-9 16:49:42

很明显是D

将b的指针作为参数传入函数fun中,b的值被改变
将a的复制作为参数传入函数fun中,a的值没有改变,但函数内的局部变量d改变,其值为a+1

故结果为D

满意请采纳,不满意请追问

HHR 发表于 2014-6-9 22:10:19

这个程序还要怎么解释?考的应该是传值和传址的知识, fun( &b, a ); 执行之后,b值改变,a值不变

text1259 发表于 2014-6-10 16:01:01

这个好啊。。。。。。。。。。。:lol:

text1259 发表于 2014-6-10 16:01:33

.............................................

大弟子 发表于 2014-6-13 12:52:13

搞清楚地址 和 数据 ,参数传递问题就好了。。。
页: [1]
查看完整版本: 帮我分析一下这到题!谢谢!!!