Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“什么是”呢&&引用;在;scanf(“f”和“variableName”)&引用;在C编程中?_C_Floating Point_Int_Scanf - Fatal编程技术网

“什么是”呢&&引用;在;scanf(“f”和“variableName”)&引用;在C编程中?

“什么是”呢&&引用;在;scanf(“f”和“variableName”)&引用;在C编程中?,c,floating-point,int,scanf,C,Floating Point,Int,Scanf,我目前正在学习C编程语言,因为“&”而被卡住了,下面是示例代码 int main() { float degrees, radians; printf("Enter an angle in degrees: "); scanf("%f", &degrees); radians = 0.0174532925 * degrees; printf("%.2f degrees is %.2f radians.\n", degrees, radia

我目前正在学习C编程语言,因为“&”而被卡住了,下面是示例代码

int main()
{
     float degrees, radians;
     printf("Enter an angle in degrees: ");
     scanf("%f", &degrees);
     radians = 0.0174532925 * degrees;
     printf("%.2f degrees is %.2f radians.\n", degrees, radians);
     return(0);
}
请看一下粗体和斜体代码。我想知道“&”有什么用。因为当我尝试运行没有“&”的代码时,它确实会运行,但当生成答案时,它会挂断


感谢您的及时答复。谢谢大家!

操作符
&
获取所传递参数的地址,并将指向该参数的指针传递到函数中,这意味着在函数中更改参数的值也将更改调用者函数中的值

scanf("%f", &degrees);
这里
scanf()
存储值,所以它需要一个地方来存储它们。 这是通过提供 存储值的位置。在您的情况下,它是
变量,通过使用
我们提供了地址


希望这会有所帮助。

您可以将&看作scanf语句中变量的“地址”。本质上,scanf语句中的基元类型需要&;在printf语句中没有使用它

请注意,当您在scanf语句中使用数组时,不需要使用&因为数组名称将提供一个隐式的&

符号(&)是C地址运算符;它返回给定变量的内存地址

scanf函数从控制台读取数据,对其进行解析,并将结果存储在所提供变量的内存地址中。理解“与”的关键在于,scanf函数族实际上改变了内存中作为参数提供的变量。因为我们使用的是内存中的直接变量,而不是副本,所以我们需要传递该变量的内存地址——因此是符号(&)

在示例代码中,
scanf(“%f”,°rees)
行可以被读取为“将浮点(“%f”)值读入度的内存地址”

通过添加以下代码行,可以查看作为参数传递给scanf的内存地址:
printf(“度的内存地址:%p”,°rees)

有关更多详细信息,请查看以下内容:

C中的“与”表示
该值存储在此(变量)中

我们不能简单地解释什么是&意味着…不要像使用函数一样使用
return
,它是一个关键字。仅在返回复杂表达式时使用括号括起来,以使其非常可读。