搜索

scanf函数 字符串输入问题

发布网友 发布时间:2022-04-23 17:08

我来回答

4个回答

热心网友 时间:2023-09-11 07:30

1
s与&s都表示地址,且值相等。
2
s与&s类型不一样,s的类型为char
*,&s的类型为char
(*)[10],即指向一行有10个字符的指针。
3
在scanf("%s",&s);语句中,&s有一个隐含的强制类型转换,即相当于scanf("%s",(char
*)&s);

热心网友 时间:2023-09-11 07:31

1.
scanf在用%s时,是指输入一个字符串,不用&,因为字符数组的名字本身就代表是这个数组的首地址,已经是地址了,再加&就错误了。
2.用%c时,是输入一个字符,那么这个字符必须加&,才能放入相应字符变量的地址里,这是不加&,也错了。

热心网友 时间:2023-09-11 07:31

第一个问题:
scanf
函数后一个参数实际上是地址,
而数组名的真正含义就是一个地址,所以不用加&取地址运算符。
第二个问题:
scanf("%s",&c);
//表示你要取C的地址,而c如果是一个变量,就可以取出地址,总之你要明白scanf后一个参数实际上是地址,c
和&c的区别在于,c本身是不是地址。

热心网友 时间:2023-09-11 07:32

分两种情况来说明。
1
输入字符。
char
c;
scanf("%c",&c);
//c定义为字符变量,格式符用%c,前面有&,只能接收一个字符。
2
输出字符串。
char
c[81];
scanf("%s",c);
//c定义为字符数组,格式符用%d,前面没有&,至多接收80个字符。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top