您好,我正在学习 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/