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

发布网友 发布时间:2024-10-23 22:04

我来回答

3个回答

热心网友 时间:2024-10-25 10:21

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。这些类型都可以当作值类型来处理,而数组不行,很容易产生很多很神奇的错误。

热心网友 时间:2024-10-25 10:20

首先p是一个数组,有三个元素,中间那个3然后p中的每个元素都是一个数组指针,指向含有3个元素的数组 int (*p[3])[3]; int arr[4][3]; p[0]=arr; p[1]=&arr[1];]

热心网友 时间:2024-10-25 10:19

定义一个3维数组,数组中的每个元素是个函数指针,该指针指向一个(带有1个int参数,返回值为指向int的指针)的函数]

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com