未分类题

有以下程序 void fun(char *c,int d) { *c=*c+1;d=d+1; printf(“%c,%c”,*c,d); } main() { char a='A',b='a'; fun(&b,a);printf(“%c,%c/n”,a,b); } 程序运行后的输出结果是
D.b,B,A,b

A.B,a,B,a
B.a,B,a,B
C.A,b,A,b

【参考答案】

D
解析:用地址作为参数与值作为参数传递之间的不同。在C语言中,数据传递是单向传递的。“值传递”就是实参把对应的值传给相应的形参变量,然后形参和实参不再有任何联系,在被调用函数中,对形参的修改并不影响对应的实参。“地址传递”就是实参把相应的地址传给相应的形参变量,在被调用函数中对形参的修改将修改对应的实参地址对应的值。程序中定义了两个字符型变量'a'和'b',并分别赋初值为'A'和'a',然后调用函数fun(),将b的地址和:值作为实参。在函数fun()中第一个参数是传递地址,故在调用函...

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

单项选择题
相关试题