关于c语言二维数组列指针初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于c语言二维数组列指针初始化相关的知识,希望对你有一定的参考价值。

关于c语言二维数组列指针初始化下图关于那个列指针的初始化有不懂。p=a[0],p=*a,p=&a[0][0]。书上说这三者等价,但是我有点不懂。
1.按照指针初始化的定义,int *p=&a[0][0];这一点,完全没问题,就算传了二维数组的首地址给指针。
2.但是,p=*a怎么会和上面等价呢 我记得*a不是去这个数组的第一个值吗,怎么能用值传给一个指针,或者说一个指针指向一个值。
3.p=a[0],这个不是传的是第一行的地址吗,和第三个具体的首地址能等价?
恳求各位前辈学长能够解惑(。ò ∀ ó。)感激~

参考技术A 你可以把二维数组a看成一个一维的指针数组,*a与a[0]等价,这样是不是好理解了?本回答被提问者和网友采纳 参考技术B Hubby and

C语言 指针初始化二维数组

我写了这么一个算法来初始化一个二维数组。。运行完后报错。。

这是我查看内存地址的结果,数组初始化赋值严重越界了啊。。我的指针初始化二维数组算法哪里写错了吗?T_T

将 p<a+12 改为 p<a[0]+12 试试 参考技术A p<a+1
指针加减乘除是有步长的,这个不好说 建议你上网查一下

以上是关于关于c语言二维数组列指针初始化的主要内容,如果未能解决你的问题,请参考以下文章

c语言学习--数组

C语言 指针二维数组怎么初始化

C语言中关于二维数据指针的问题?

C语言 如何定义一个二维指针数组?

c语言中怎样实现对二维数组元素进行赋值并输出。

C 语言二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )