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个字符。