有没有什么特别的原因,为什么当输入C(scanf)更喜欢取变量的内存位置而不是变量本身的名称? 我知道它的定义是什么? 但是有什么特别的原因吗? 就像在C++中,如果你想输入你会写cin >> var; 但为什么不在? 让语言更快一些吗?为什么在C输入需要变量的内存位置而不是变量本身的名称?
回答
这是因为在C值函数是按值传递。而且,当然,作为变量的编译语言名称在运行时并不存在,这是所有内存中的地址。
如果直接传递变量,你只是传递价值,这就是printf()
需求:
int a = 32;
printf("a=%d\n", a);
,但如果你做同样的用的scanf()`是变化的来电者的变量的值,你传递变量的地址:
int a = 32;
scanf("%d", &a);
内。然后scanf()
代码可以写在一个新的整数值给定地址,导致值在a
中更改。
您需要通过引用传递的变量的scanf(),以使scanf()函数可以写在该地址的数据..
-1,'scanf()'当然不会“将地址写入提供的指针”。 – unwind
Ohhh ..我的头脑去了一些其他的宇宙一段时间。 – user2407394
欢迎回来。 Downvote删除。 :) – unwind
- 1. 为什么在堆,而不是变量本身在C++
- 2. 值是变量名称而不是变量的内容
- 3. OpenGL为什么需要统一变量(而不是常量)
- 4. 为什么有些变量需要全局性而其他变量不需要?
- 5. 为什么在这里需要'self'而不是实例变量?
- 6. 位置在内存中的变量,C
- 7. 为什么我需要在此实例中使用变量而不是输入变量值?
- 8. 是什么存储“存储变量所需的内存”的变量和要求的规格有什么区别?
- 9. 萨斯混入并不需要的价值,但变量名称,而不是
- 10. SSIS以“指定”结尾的输入变量名称 - 为什么?
- 11. 为什么格式化输入输出需要提供变量?
- 12. 什么是javascript的变量“名称”?
- 13. javascript中的变量名称之后的新变量。为什么?
- 14. 在Python中,为什么类中某个变量的dictonary值发生变化,而不是变量本身?
- 15. 发布变量值而不是变量的名称
- 16. Curl输出变量名称而不是其内容
- 17. 为什么我的变量不是用SESSION变量设置的?
- 18. 什么是静态变量的实际内存位置?
- 19. 为什么需要为.m文件中的变量创建变量obj-c
- 20. 指针变量本身的内存位置?
- 21. 内存变量名称相同的位置
- 22. C++内部更改变量名称为
- 23. R - 如何让max()返回变量名称而不是变量的内容?
- 24. 为什么数组变成文本“数组”而不是变量?
- 25. JavaScript变量内存位置
- 26. 需要帮助来获取脚本名称作为变量vs手动输入
- 27. 为什么要通过寄存器来变量变量,而不是直接用汇编语言推送变量?
- 28. 为什么StockWatcher.java在onModuleLoad中使用类变量而不是本地变量?
- 29. 为什么我们需要投放变量而不分配它?
- 30. Java - 将变量内容设置为新变量名称
由于C通过拷贝传递参数,而不使用指针,因此它不能修改对象。 – ouah