问题
单项选择题
有以下语句:int b;char c[10];,则正确的输入语句是______。
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
答案
参考答案:B
解析: C语言的输入语句scanf实际上是其标准输入输出库(stdio.h)中的一个函数,而C语言的函数参数是传值的,要想将值从被调用函数中传回调用函数,必须以参数的地址作为实参。因此必须将b和c的地址传递给scanf。由于c是数组名,本身就是一个固定指针,不需要再取其地址,只需要取b的地址&.b。正确选项是B。