这个问题可能看起来很愚蠢,但这就是人们学习的方式:)。我学习了C ++,你不必担心在cin>>中引用int变量。 。今天我学习C语言处理学校工作,但当我尝试使用这种语法运行程序时,我收到了错误。
scanf("%d\n %s\n",id, name);
但是当我在scanf中引用id时,错误就消失了.i-e;
scanf("%d\n %s\n",&id, name);
为什么会这样?我将非常感谢回答这个noob问题..
答案 0 :(得分:1)
scanf
需要id
的地址,以便扫描存储值。它对它的当前值没有兴趣,这是你在第一种情况下给出的值。
答案 1 :(得分:1)
scanf
是一个函数,它需要一个指向变量的指针,以便它可以将它读取的值存储到指针指向的位置。
name
可能是某种(char
?)数组,因此该变量的标识符已经引用了一个地址,因此&
运算符不是必需的。但是,对于int
变量(我假设id
是某种int
),您需要将地址传递给调用中的scanf
。< / p>
答案 2 :(得分:0)
scanf是一个C函数。 C没有引用,因此要更改变量scanf需要传递指向该变量位置的指针。 C ++有引用,因此它不需要指针,尽管它也可以使用它们。
答案 3 :(得分:0)
scanf()需要变量的地址来存储数据。
如果是整数,则需要“&amp; ”符号来引用整数变量的地址。但是在字符串的情况下,不需要使用“&amp; ”,因为字符串已经是指向字符数组的指针。