gpt4 book ai didi

c - 为什么 scanf 需要 &?

转载 作者:太空狗 更新时间:2023-10-29 16:45:39 26 4
gpt4 key购买 nike

我想从标准输入中读取一个数字。我不明白为什么 scanf 需要在我的变量名前使用 &:

int i;
scanf("%d", &i);

为什么scanf需要变量的地址?

最佳答案

需要改变变量。由于 C 中的所有参数都是按值传递的,因此如果您希望函数能够更改参数,则需要传递一个指针。

这是一个非常简单的例子:

void nochange(int var) {
// Here, var is a copy of the original number. &var != &value
var = 1337;
}
void change(int *var) {
// Here, var is a pointer to the original number. var == &value
// Writing to `*var` modifies the variable the pointer points to
*var = 1337;
}
int main() {
int value = 42;
nochange(value);
change(&value);
return 0;
}

关于c - 为什么 scanf 需要 &?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10597606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com