77问答网
所有问题
为什么c语言中char*s;scanf("%s",s)是错的??
如题所述
举报该问题
其他回答
第1个回答 2020-04-30
因为你没有给指针s指向地址,s就是一个野指针。
就好比你定义了一个
int
*a;*a=2;这是错的。
第2个回答 2019-11-25
恭喜您,这是正确的。
还可以使用以下方法:
1.p[2]
2.p+2
3.*(p+2)
4.&str[2]
5.str[2]
6.str+2
因为这是字符串数组可以这样写,如果是数字数组,就是:
p+2;p[2],&str[2]
相似回答
大家给我解释下;谢谢!!!
char *s;scanf(
"
%s
"
,s);
是哪里出错,
答:
所以用
scanf
语句会有错误,你可以改成
char
s[MAXSIZE] ; 这样就能正常的录入了。希望可以帮到你。
.
char *s; scanf(
"
%s
",*
s);错
在哪里了?
答:
因为s是指针,所以s才是地址
,*s是指向的char类型内容 所以要用scanf("%s",s);不过在用之前先要给s初始化,让其合法,例如让s指向一个字符串数组,不然s是个空指针。
函数
char
s[5]
;scanf(
"
%s
"
,&s);为什么
不能正确为字符数组输入数据_百度...
答:
scanf
函数要求的是变量地址,而数组名s本身就是地址,所以不能用
&s,
而只能用s
char *s; scanf(
“
%s
”
,s)
这个语句错在哪里了?求解释
答:
char *s;
s = (char*)malloc(sizeof(
char)
)
;scanf(
"
%s
"
,s);
s只是一个指针,并没有给他分配内存空间,所以先要用malloc(需包含头函数“stdlib.h”)给他分配内存空间,然后在给他赋值
char
s[5]
;scanf(
"
%s
"
,&s);
对吗?
答:
不对
,scanf
后面的
括号中
,参数列表如果是变量的话,才用取地址符,但是如果是字符串形式,其数组名就表示首字符的地址,因此直接用数组名就可以,不用取地址符。
scanf(
"
%s
"
,&s)
和 scanf("%s"
,s)
两个都对吗?
答:
看
s
是什么类型啊,后面的要求是字符型的地址 如果s是字符数组名,后一种对,前一种错 如果s是字符变量名,前一种对,后一种错
char *s; scanf(
"
%s
"
,s);
put
s(
s); /*假设执行时输入ABCDE<回车>*/ 为...
答:
char *s;
//这个只定义一个指针,输入的字符串放哪儿。改为:char s[81]
;scanf(
"
%s
"
,s);
put
s(
s);
大家正在搜