c++ - 在 C++ 中获取指向数组的指针的拷贝

标签 c++ c arrays pointers multidimensional-array

您好,我正在学习 C++ Primer,有一个简单的问题。请帮帮我。

所以我知道“int *p = (*q)[10]”,其中 p 是指向 10 数组的指针。问题是,在函数定义中:“void print(int (*q)[ 10])"其中这个指针是一个参数。我怎样才能得到那个指针的拷贝。那会是“int *p = q”吗?

我在技术上不知道如何用 C++ 测试我的正确性。

谢谢

最佳答案

int (*q)[10] 

q 声明为指向 10 个 int 数组的指针。只有数组衰减为指向其基础类型的指针,但指向数组的指针不会衰减为指向基础类型的指针,因此尝试 int* p = q; 将导致编译错误。你需要的是

int (*p)[10] = q; // copies the pointer q to p

关于c++ - 在 C++ 中获取指向数组的指针的拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33249469/

相关文章:

c# - 如何在没有文件的情况下在 C++ 应用程序和 C# 应用程序之间共享数据?

c++ - C++函数参数表中有String类型的情况下,是否可以使用C程序函数调用C++函数?

c++ - 如何找到字符串文字的地址?

c++ - 如何在给定设备实例 ID 的情况下快速可靠地获取网卡的 MAC 地址

c - 数组末尾的 NULL 的用途?

javascript - 返回最短单词和最长单词的长度差值(使用 for 循环)

c - 使用 ## 的 token 连接给出 "not a valid preprocessing token"

c - 有没有办法调整这个非线性方程组

c - 在 C 中动态填充字符串数组

arrays - Haskell 中令人费解的内存行为