提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
许多同学在学习指针的时候对于指针数组和数组指针的使用有许多难处,现在我带领同学学习一下指针数组与数组指针的区别和使用
一、指针数组
指针数组是一个数组,可以存放多个指针的值
int arr1[10];
int arr2[10];
int arr3[10];
int* parr[3];//parr是一个数组,元素类型为int *,可以存放多个指向int数据的指针;
parr[0] = arr1;//数组名在表达式中转化为指向首元素的指针
parr[1] = arr2;
parr[2] = arr3;
return 0;
int** pparr;
int i,j;
int arr1[10];
int arr2[10];
int arr3[10];
int* parr[3];//parr是一个数组,元素类型为int *,可以存放多个指向int数据的指针;
parr[0] = arr1;//数组名在表达式中转化为指向首元素的指针
parr[1] = arr2;
parr[2] = arr3;
pparr = parr;//parr在表达式中使用时转化为指向数组首元素的指针,即转化为int**类型
*(*pparr+i)+j== parr[i][j];
return 0;
二、数组指针
数组指针是一个指针,是一个指向数组的变量,所以我们关心的它是指向几维数组的指针
- 数组为一维数组
int arr[10]={0};
int i;
int* pa;//pa是一个类型为int *的变量,指向一个int数据
pa = arr;//数组名在表达式中会转化成指向数组首元素的指针
//*(pa + i) == arr[i];
return 0;
- 数组为二维数组时
int arr[3][3] = { 0 };//arr是一个int[10][10]类型的数据;
int i, j;
int(*pa)[3];
int* p;//pa是一个指向int[10]的变量,指向一个一维数组
pa = arr;//数组名在表达式中会转化成指向数组首元素的指针,即arr[0]的地址
p = *pa;
return 0;
结语
此文章为我第一篇文章,如有错误,还望指正,谢谢