繁体   English   中英

为什么我们在使用 scanf 函数时需要指定变量的地址而不是变量的名称

[英]Why we need to specify address of variable and not name of variable while using scanf function

为什么我们在使用 scanf 函数时需要指定变量的地址而不是变量的名称,例如: scanf("%d",&a); 为什么我们使用 & 代替我们可以这样写scanf("%d",a); 那么为什么我们需要在使用scanf()使用 address 呢?

scanf在所有情况下都隐含地需要一个地址,因为您将作为输入的变量必须存储在内存中的某处,并且使用&variable_name分配一个指向变量位置的指针。

在数组/字符串的情况下,您可以不使用&因为传递的数组/字符串实际上是指向存储第一个值/字符的位置的指针。 (从那里您可以使用指针算法对其进行迭代,例如:+4 表示 int)

以上答案和评论为您提供了技术原因,但在外行方面

所以你的问题基本上是为什么scanf不能只取变量名而不是地址。

您使用scanf()将某些内容放入变量中,对吗?

现在让我们假设你想投递一封信,你能通过提供这个人的名字来投递吗?

你需要在上面写上地址,然后邮递员就会到达那个地址,邮递员不需要知道收件人的名字,他只需要知道地址。

您的scanf就像邮递员一样,它需要内存位置的地址才能将该值传递给您想要的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM