c++ - 在 C++ 中传递数组引用

标签 c++ arrays function reference

我是 C++ 的新手,一直遇到很多语法问题。我已经有一段时间没能找到具体的答案了。我正在尝试运行这段代码:

void test(char &testChar){
    char B[3] = {"BB"};
    testChar = B;
}

int main(int argc, const char * argv[])
{
    char A[3] = {"AB"};
    test(A);
    std::cout << A;

    return 0;
}

我想传递我的变量 A功能test并用该函数替换 A 的内容与局部变量的内容 B ,然后打印出来。应该怎么做?

最佳答案

对数组的引用应该是这个

void test(char (&testChar)[3]){
 // code
}

但是在你的测试函数中 testChar = B; 表达式是错误的。你需要 explicitly string copy (第二个引用在 C++ 中没有改变,不像指针)为此你可能想阅读:C++ Reference, change the refered variable

编辑:正如@ChristianSjöstedt 评论的那样。

Python 是“动态类型语言”,其中变量的类型和值可以更改,而在 C++ 中,您声明变量的类型它不会更改。

 i = 10         # reference to int 
 i = "name"     # reference to str

这在 Python 中是可能的,但在 C++(和 C)中则不行

C/C++ 是静态语言,意思是“静态类型语言”。例如,变量的类型不能在编译时更改和静态定义。

int i = 10;

i in int 可以是 char。

Dynamic type languages versus static type languages

关于c++ - 在 C++ 中传递数组引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15922852/

相关文章:

c++ - 更改子类 CStatic 控件的背景颜色

c++ - 使用指向类内部结构的指针

c++ - QToolBar 子列表总是在增长。 Qt内存泄漏?

c++ - 设置泛型返回类型

arrays - 如何将元素添加到 bash 数组?

php - PHP中使用foreach循环的多维数组

javascript - 使用 JavaScript 在眨眼时显示不同的文本?

javascript - ES6 类方法在 forEach 循环内不返回任何内容

javascript - 返回函数中循环的所有结果 (JavaScript)

php - 为什么这个PHP递归函数没有返回值?