C语言问题:若有char a[80],*s=a;正确的输入语句是()

A:scanf("%s",s);
B:gets(*s);
C:scanf("%c",s);
D:getchar(s,80);
正确答案是A,但是四个选项能详细的讲解一下吗?指针的部分一直不是很明白……

s表示的是指针,*s表示指针所指向的值

B. gets函数的参数是指针,改为:gets(s);
C. %c代表输入类型是字符型,所以s处应改为变量的地址,改为scanf("%c",&a[0]);
D getchar函数无参数,改为a[0]=getchar();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-28
A正确,请选A。追问

其余3个错在哪里

追答

B.gets函数需要一个指针参数,而*s却是a[0]——数组a的第一个字符;
C.scanf函数在接收字符串时需要用字符串控制符"%s",而这里却是"%c";
D.getchar函数一看名字就知道是接收一个字符的,而不是接收字符串的。

相似回答