在scanf中引用int

时间:2012-09-08 13:58:22

标签: c++ c scanf

这个问题可能看起来很愚蠢,但这就是人们学习的方式:)。我学习了C ++,你不必担心在cin>>中引用int变量。 。今天我学习C语言处理学校工作,但当我尝试使用这种语法运行程序时,我收到了错误。

scanf("%d\n %s\n",id, name);

但是当我在scanf中引用id时,错误就消失了.i-e;

scanf("%d\n %s\n",&id, name);

为什么会这样?我将非常感谢回答这个noob问题..

4 个答案:

答案 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; ”,因为字符串已经是指向字符数组的指针。