我正在学习C语言,因为“&”而卡住了,下面是示例代码。
int main()
{
float degrees, radians;
printf("Enter an angle in degrees: ");
scanf("%f", °rees);
radians = 0.0174532925 * degrees;
printf("%.2f degrees is %.2f radians.\n", degrees, radians);
return(0);
}
请看一下粗体和斜体的代码。我想知道“&”有什么用。因为当我尝试运行没有“&”度数的代码时,它确实会运行,但在生成答案时它会挂起。
感谢您立即回复。谢谢!
最佳答案
与号 (&) 是 C 地址运算符;它返回给定变量的内存地址。
scanf 函数从控制台读取数据,解析数据,并将结果存储在所提供变量的内存地址中。理解 & 符号的关键是 scanf 系列函数实际上在内存中更改了作为参数提供的变量。由于我们使用的是内存中的直接变量而不是副本,因此我们需要传递该变量的内存地址 - 因此需要使用与号 (&)。
在示例代码中,scanf("%f", & Degrees)
行可以读取为“将浮点 ("%f") 值读入度数的内存地址中”。
您可以通过在 return 语句之前添加以下代码行来查看作为参数传递给 scanf 的内存地址: printf("memory address of Degrees: %p", & Degrees);
.
请查看以下内容以了解更多详细信息: http://see-programming.blogspot.com/2013/10/difference-between-asterisk-and.html http://beej.us/guide/bgc/output/html/multipage/scanf.html
关于c - C 编程中 "&"%f", &variableName);"中的 "scanf("是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930147/