通过参考问题
Passing by reference issue?
我试图将数组char arr[6] = {"1","2",etc.}
传递到采用此 void foo(char* &arr,...)
的参数且不起作用的函数的问题。谁能向我解释?
char arr[6]
是一个数组。
char* &arr
是对指针的(n lvalue)引用。
现在,由于该参数不是正确的类型,因此必须转换它。一个阵列隐式腐烂(衰减是一种转换)为第一个元素的指针。
但是,这个腐烂的指针是暂时的(rvalue)。非const lvalue参考无法指代rvalues,因此用数组参数调用 foo
是不明式的。
您可以创建一个指针变量;可以将其传递给foo
:
char* ptr = arr;
foo(ptr, ...);
然后可以修改该指针(即使其指向其他char
对象),因为该引用是非const。
ps。阵列的初始化有些问题。"1"
和"2"
不是char
对象。
相关文章:
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- C++ 而循环问题 Codecademy 参考 [已解决]
- 我有几个关于参考变量的问题
- MSYS2静态QT未定义的参考问题
- OPENCV筛选未定义的参考问题
- 有关参考和指针的问题
- Python C-API:PYDICT_GETITEM上的分割故障,可能的参考问题
- 参考类型静态数据成员的问题可能是编译器错误
- 通过参考问题
- 命名空间外部变量的未定义参考/多重定义,C 结构问题
- 关于通用参考和左值参考的问题
- 通过参考问题
- 矢量参考问题
- VS 2010构建问题:参考问题
- 课堂自我参考问题
- C++参考问题
- 关于指针和参考文献的两个简短问题
- 这个快速排序有什么问题,我从书中参考它
- OpenCV 2.3编译问题-未定义的参考- Ubuntu 11.10