您好我正在学习C ++入门并且有一个简单的问题。请帮帮我。
所以我知道“int * p =(* q)[10]”其中p是指向数组10的指针。问题是,在函数定义中:“void print(int(* q)[ 10])“这个指针是一个参数。我怎么能得到那个指针的副本。那会是“int * p = q”吗?
我在技术上不知道如何在C ++中测试我的正确性。
由于
答案 0 :(得分:1)
int (*q)[10]
将q
声明为指向10 int
的数组的指针。只有数组衰减到指向其底层类型的指针,但指向数组的指针不会衰减指向底层类型的指针,因此尝试int* p = q;
将导致编译错误。你需要的是
int (*p)[10] = q; // copies the pointer q to p