指针数组和二维数组指针
http://c.biancheng.net/view/2022.html
#include <bits/stdc++.h> using namespace std; int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int main() { int (*p)[4] =a; for(int i =0;i<3;i++){ for(int j =0;j<4;j++){ printf("%2d ",*(*(p+i)+j)); } /* *(p+i): 第i行数据的首地址 *(p+i)+j: 第i行第j列个元素的地址 */ printf("\n"); } return 0; }
int *p1[5] //指针数组 int (*p1[5])一样的
int (*p2)[5]//二维数组指针
指针数组,每个元素都是指针,p1在32位环境下占4*5=20字节
二维数组指针,是一个指针,它指向一个二维数组。p2占4字节