gpt4 book ai didi

c++ - 通过 (char* bar) 和 (char are[ ]) 传递 char 数组是否相同? C++

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:22 24 4
gpt4 key购买 nike

<分区>

我是 c++ 的新手,我需要帮助,因为如果我认为不同的两种方式实际上是同一件事,我会感到有些困惑。所以这是我将字符数组传递给函数的代码。

     // This is the first style I use
void functionPTR( char *ptr ) // Pass by reference
{
// just put up some random code
strcpy(ptr,"BY_POINTER");
cout<<ptr[0]; // random thing
}

// This is the Second style I use
void functionVAL( char val[] ) // Pass by value
{
... code here
}

这是我的困惑。我一直认为第一个基本上是通过引用传递,函数中变量的任何更改都会更改原始传递的变量,并认为第二个是传统的按值传递方式,函数创建自己的值并使用它来修改哪个不影响原来传递的变量。

但是这里的事情并不像我想象的那样。在这两种情况下,函数对变量所做的任何更改都会反射(reflect)在原始传递的变量中。
谁能解释一下这东西是如何工作的。请不要对我太苛刻,因为我还在自学。

感谢您停下来阅读我的问题并帮助我。

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