在c ++中获取指向数组的指针的副本

时间:2015-10-21 01:25:17

标签: c++ c arrays pointers multidimensional-array

您好我正在学习C ++入门并且有一个简单的问题。请帮帮我。

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

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

由于

1 个答案:

答案 0 :(得分:1)

int (*q)[10] 

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

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