指针数组,是数组的每个元素都是指针。
二维数组,相当于是每个元素都是一维数组的数组。
一维数组是一个连续的存储空间,字节数为数组元素个数乘以每个元素的字节数。
指针只是一个地址,占4个字节。
int A[2][3]; 内存分配情况:
A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] -----> 2*3*4 字节的连续空间
~4字节~ ~4字节~ ~4字节~ ~4字节~ ~4字节~ ~4字节~
*p[3] 指针数组的内存分配情况
p[0] p[1] p[2] ----> 12 字节连续空间
~4字节~ ~4字节~ ~4字节~
| | |__ p[2][0] p[2][1] p[2][2] …… p[2][n-1] ----> 4*n 字节连续空间
| | ~4字节~ ~4字节~ ~4字节~ …… ~4字节~
| |__________ p[2][0] p[2][1] p[2][2] …… p[2][m-1] ----> 4*m 字节连续空间
| ~4字节~ ~4字节~ ~4字节~ …… ~4字节~
|___________________ p[2][0] p[2][1] p[2][2] …… p[2][x-1] ----> 4*x 字节连续空间
~4字节~ ~4字节~ ~4字节~ …… ~4字节~
注: n,m,x 不一定相等
数组指针直接指向数组,不用说了
--------------------next---------------------
阅读(1065) | 评论(0) | 转发(0) |