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