这里昨天总结了一下,但仍有疑虑!
=========================================================================================================================================
二维数组定义:数组的数组
float rain[2][3]; 内含2个数组元素的数组,每个数组元素内含3个float类型的元素。
此时可以想象出一个2*3的矩阵,这个二维数组由两个一维数组组成,每个一维数组内含3个float类型的元素.
-——>:rain代表二维数组的行首地址;rain[0]与rain[1]是内含3个float值的一维数组,即rain[0]为一维数组的首地址,那么rain[0][0]是一个float类型的值。
由此可以知道:
int main(void)
{
int a[2][3] = { {1,2,3},{4,5,6} };
int *p=a[0]; // 二维数组中第一行的一维数组的首地址
//int *p=&a[0][0];
}
=======================================================================================================================================================
此外还可以定义一个数组指针; (数组指针是指向数组地址的指针,其本质为指针)
int *p[3] =a;
这个数组指针仍存在疑虑,此处的int *p[3] 是啥意思?p指向的是列吗?
为啥数组指针就可以直接指向二维数组行首地址???
烦请各位路过的前辈指点一二!
————————————————