gpt4 book ai didi

c++ - C++ 是通过值还是引用传递对象?

转载 作者:IT老高 更新时间:2023-10-28 14:00:02 26 4
gpt4 key购买 nike

一个我在这里找不到答案的简单问题。

我的理解是,在调用期间将参数传递给函数时,例如

void myFunction(type myVariable)
{
}

void main()
{
myFunction(myVariable);
}

对于 intfloat 等简单数据类型,该函数按值调用。

但如果 myVariable 是一个数组,则只传递起始地址(即使我们的函数是按值调用的函数)。

如果 myVariable 是一个对象,也只传递对象的地址,而不是创建一个拷贝并传递它。

回到问题。 C++ 是通过引用还是值传递对象?

最佳答案

参数按值传递,除非函数签名另有说明:

  • void foo(type arg)中,arg是按值传递的,不管type是简单类型、指针类型还是类类型,
  • void foo(type& arg)中,arg是通过引用传递的。

对于数组,传递的值是指向数组第一个元素的指针。如果您在编译时知道数组的大小,也可以通过引用传递数组:void foo(type (&arg)[10]).

关于c++ - C++ 是通过值还是引用传递对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215409/

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