77问答网
所有问题
函数char s[5];scanf("%s",&s);为什么不能正确为字符数组输入数据
如题所述
举报该问题
推荐答案 2017-05-23
scanf函数要求的是变量地址,而数组名s本身就是地址,所以不能用&s,而只能用s
追问
如果改为char s[5];scanf("%s",&s[0]);为什么就可以?
追答
因为数组名是数组的首地址(第一个元素的地址),也就是&s[0]
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/GINqqWNpGNpv3Nq3Nvv.html
相似回答
scanf输入字符串
的问题
答:
首先你输入的字符已经超过了你提供的缓冲区的大小,这个本身是一个错误
。具体来说是:在程序的stack上,stack是向下生长的,所以s1在低地址,s在高地址。假设s的内存空间是 8 ~ 4, s1是 0 ~ 3,当你输入iloveyou,s被写入,写入地址是4~12,注意这里已经越界了,破坏了stack结构,会在离开main...
求c语言大神,题目:
不能正确为字符数组输入数据
的是:
答:
理论上A有问题,毕竟&s相当于
char
**,是有问题的
...
为什么
结构体里面的数组可以数组名
输入,字符数组不能
数组名输入?详...
答:
scanf(
"%s",string
);输入
I love China !string 只读入了 I 因为
,%s
格式,用 空白 做分隔符。残留的 输入部分在缓冲区内,下面的输入语句将用它们。
语句{
char
*
s;scanf(
"
%s
"
,s);
put
s(s);
} /*假设执行时
输入
ABCDE<回车>*/...
答:
不一定,多数情况下不会正确输出字符串。
由于没有分配空间,且指针s的值未知,所以,向一个不属于空间写入数据后,结果未知,多数情况下会崩溃...系统一般不会向别人的内存空间乱写的
,当然不排除运气好的时候。scanf函数和getchar函数在输入时是读取到“回车”就结束的,而回bai车符留在了输入流缓冲区...
为什么
C语言程序
输入
不了内容,有什么错误?
答:
所以在你图中代码
char
c
[5]
[20];c[i]就表示一行字符串的首地址。同理s数组也是。所以当输入c和s数组,用c[i]
,s[
i]做参数,不要加&,直接写
scanf(
"
%s%s
",c[i],s[i])就可以了。而a是不是
字符数组,
%f不能直接对应一行,而要对应其中一个元素,所以要写&a[i][j]。而你的循环条件...
scanf
_s读取
字符数组输入
超过数组长度
什么
也不读取?
答:
如果用
%s
作为格式指示符来读取一个过长的
字符串,
那么会导致内存溢出。如图所示,虽然可以输出整个字符串,但是因为在用%s输出这个字符串时数组下标越
字符数组
的
输入
--“
%s
”的问题
答:
scanf函数的输入参数应是地址(即把你从标准输入设备上输入的数送到你所指定的地址中)。如果你逐个输入一维整型数组元素,具体代码如下:for (i=0;i<LEN;i++)
scanf(
"%d",&a[i
]);
其中LEN为符号常量(一维数组的长度),用预处理命令define定义。这样输入的话是没有问题的(请注意a[i]前面的&...
大家正在搜
scanf函数是一个标准输入函数
scanf函数输入字符串
scanf输入char
scanf字符串string
scanf字符数组
用scanf给字符数组赋值
字符串用scanf输入
scanf输入数组
有一输入函数scanf
相关问题
求c语言大神,题目:不能正确为字符数组输入数据的是:
char *s; scanf("%s",s); puts(s...
C语言,这个怎么错了?
C语言问题:若有char a[80],*s=a;正确的输入语...
scanf("%d%d",&a,&b)与scanf("%d,...
选择正确的输入语句(其中:char string[20]),...
C语言的scanf语句格式
为什么gets("a"),gets("b")不能正确输入字符...