工作日记怎么写:SCANF(“%S”, &STR); 中为什么是错的 为什么不用加&

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 22:24:34

你的语句已经表明%s其实是要输入一个字符串,那么我相信你的STR其实是表示一个字符串的变量,那么和数组的一样,STR其实就是表示这个字符串的首地址了。我们在SCANF中使用&,是指将值放入这个地址中,现在已经是地址了,当然不需要了。如果你一定要用的话,可以改成scanf("%s",&str[0]).

不过我突然想到我以前用过的情况,在一个结构变量中有一个成员是字符串,我用不用&都不报错,也不知道为什么。

str是一个字符串,也就是一个字符数组,
数组名就表示数组首字母元素地址。
所以不用再加取地址符&

看你怎么定义的STR了,如果STR是个对象实体,就必须加&,如果是个指针,就不用加了。
我感觉你定义的是个数组,如果STR是数组名的话,就不用加了。