请问int (*p)[3];是什么意思?

如题所述

int(*)[3]这个东西是指向类型为int[3]的指针,也就是说是指向一个长度为3的整型数组的指针。比如:
int a[5][3]; // 一个二维数组,第一维长度为5,元素类型为int[3]
int (&r)[3] = a[2]; // 一个类型为int[3]的引用,指向a中的第三个元素
int (*p)[3] = &r; // 指针指向这个地址
后话,虽然这么用没错,但强烈不建议这样用。
需要的话考虑容器std::vector<T或者std::array<T, N。这些类型都可以当作值类型来处理,而数组不行,很容易产生很多很神奇的错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-31
首先p是一个数组,有三个元素,中间那个3然后p中的每个元素都是一个数组指针,指向含有3个元素的数组 int (*p[3])[3]; int arr[4][3]; p[0]=arr; p[1]=&arr[1];]
第2个回答  2013-10-31
定义一个3维数组,数组中的每个元素是个函数指针,该指针指向一个(带有1个int参数,返回值为指向int的指针)的函数]
相似回答