【发布时间】:2015-10-21 01:25:16
【问题描述】:
您好,我正在学习 C++ Primer,有一个简单的问题。请帮帮我。
所以我知道“int *p = (*q)[10]”,其中 p 是指向 10 数组的指针。问题是,在函数定义中:“void print(int (*q)[ 10])" 其中这个指针是一个参数。我怎么能得到那个指针的副本。那会是“int *p = q”吗?
从技术上讲,我不知道如何在 C++ 中测试我的正确性。
谢谢
【问题讨论】:
-
为什么不使用
int *p = new int[10]来初始化具有 10 个 int 值的数组? -
@DanilProkhenko 因为新的不好。
-
@DanilProkhorenko 如果在编译时知道大小,则不需要动态分配,如果是,则应首选
std::vector,除非有特殊要求。 -
int *p = (*q)[10]这会取消引用指针q,在内存中前进 10 个位置,期望可以变成int *并将其存储在p中。 -
以“So I know”开头的句子没有意义。
标签: c++ c arrays pointers multidimensional-array