数组指针:本质上是一个指针,指向的是一个数组的地址。
注:例如数组 int arr[]={1,2,3,4,5};
int (*p1)[5]=&arr 此时p1指向的是一个数组,如果让p1+1,跳过的就是一个数组的大小。
int *p2=arr; 此时p2指向的是数组arr首元素的地址,如果让p2+1,跳过的就是4个字节。
数组指针的使用(使用数组指针遍历二维数组)
#include <stdio.h> void printf1(int arr[3][5],int r,int c){ int i=0; int j=0; for (int i = 0; i < 3; ++i) { for (int j = 0; j < c; ++j) { printf("%d\t",arr[i][j]); } printf("\n"); } } void printf2(int (*p)[5],int r,int c){ int i=0; int j=0; for (int i = 0; i < r; ++i) { for (int j = 0; j < c; ++j) { printf("%d\t",*(*(p+i)+j)); } printf("\n"); } } int main() { int arr[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; printf2(arr,3,5); return 0; }