头部左侧文字
头部右侧文字
当前位置:网站首页 > 资讯 > 正文

二级指针访问二维数组,如何用二级指针指向一个二维数组

作者:admin日期:2024-02-14 19:45:10浏览:59分类:资讯

怎么理解指向二维数组的数组指针是二级指针

1、//解答如下二级指针:指向指针的指针,它存放的是一级指针的地址。int *p;int **q;q = //把一级指针p的地址赋值给二级指针q。

2、确切的说二维数组名是一个指向常量的二级指针,因为它总是指向固定的地址-指向一列数组的首地址。举个简单的例子,chart a[5][5],a=&a[0],而指针数组名也是指向常量二级指针,因为指针数组名总是指向数组的第一个元素。

3、二级指针和二维数组并不等价。二级指针是一个指向指针的指针 而二维数组其实就是一个指针,char a[3][4]; a是指向整个二维数组的首地址。

求c语言指针方式引用二维数组问题

a[0]代表第一组首元素地址,当然,a[0]也指向数组首元素的地址,a[0]=&a[0][0];a是对a取值,它取出的是a[0],当然=&a[0][0];&a[0]指a[0]的地址,还是它自己,所以&a[0]=&a[0][0]。

首先a是二维数组变量,不要乱说什么首地址,它不是。数组就是数组,它是区别于单个数据的一种类型,不要随便和它对应的单个数据类型随便做比较。

通过二级指针去访问二维数组需要先给二级指针分配等同于二维数组行数的一维数组指针,然后把二维数组的每行首地址赋值给对应位置的一维指针上。之后就可以通过二维指针直接访问了。

指针指向二维数组的问题

p=a 这里的p即为a[4]的首地址,也就是说p指向了4*5的数组,指针里的5表示第二维度数组的长度即第一行数据的个数,如果b中int (*p)[5],则会不够存储A中数组第二维度的长度,就会出错。

可以理解为 int a [5] = {1,2,3,4,5,6}; a存储的都是数组的首元素地址,区别在于以为一维数组的下标代表的是地址,二维数组下标代表的是行和列的个数。

p指向一个N列二维数组的首地址 p自增1,p指向下一“行”一维数组的首地址 因为p是一个二级指针。

暂无评论,来添加一个吧。

取消回复欢迎 发表评论: