【发布时间】:2014-02-08 12:36:34
【问题描述】:
一个我在这里找不到答案的简单问题。
我的理解是,在调用期间将参数传递给函数时,例如
void myFunction(type myVariable)
{
}
void main()
{
myFunction(myVariable);
}
对于int、float 等简单数据类型,函数按值调用。
但如果myVariable 是一个数组,则只传递起始地址(即使我们的函数是按值调用的函数)。
如果myVariable是一个对象,也只传递对象的地址,而不是创建一个副本并传递它。
回到问题。 C++ 是通过引用还是值传递对象?
【问题讨论】:
-
@juanchopanza 书单?? :0 说真的,否决票??我必须买所有这些书才能知道问题的答案。对不起,我很难过
-
总的来说,这不是一个坏问题。但它确实表明,也许您应该坐下来了解一下该语言的基础知识,并通过一些测试用例进行试验。如果你这样做了,你会很快看到传递对象的默认行为是复制。你可以通过传递一个
std::vector<int> myVariable参数来看到这一点,在myFunction中添加它并在那里打印,然后在main中打印它。修改不会反映在main的输出中。但是 C++ 可以超越这些约定。这是它的疯狂和魅力的一部分。阅读,不要绝望! -
我的书没有阐明对象是如何传递的,以及数组传递。我很困惑。我用谷歌搜索和搜索here。所有问题都是具体的。没有找到一个普遍的答案,我决定问
-
Could we please be a bit nicer to new users?。他们在这里成群结队地狩猎。但不要担心它们。
-
我认为这是一个完全有效且有用的问题。我有几本关于 C++ 的书,并且已经断断续续地使用它 5 年了(主要用于学校作业),但我不总是记得我接触过的所有不同语言是如何在最低水平上运行的。在工作中,我在家里使用 C# 和一点 Python、C++ 来进行随机项目,上周我开始认真对待 C。他们的做法都有些不同,我需要一种快速简单的方法来刷新这个主题C++ 无需挖掘 400-600 多页的书籍。
标签: c++ pass-by-reference pass-by-value pass-by-pointer