数组指针和指针数组
一、 数组指针
谁在后面,那么这个东西的本质就是谁
数组指针:本质是一个指针
指向数组的指针
存储类型 数据类型 (*变量名) [元素的个数];
数据类型:数组指针指向的数组中元素的数据类型
* 和 [] :谁的优先级更高,[],可是,我们现在要定义的是一个指针,所以要让变量名先与*接触,所以,要将*与变量名用()括起来;
元素的个数:一维数组中元素的个数
int a; //数据类型 int
Int *p;//数据类型int*
P = &a;//一个指向整型变量的指针
Int arr[5]={0};//定义了一个整形数组 int [5]
Int (*p)[5]= NULL;//数据类型,int(*)[5]
P = &arr;
注意:数组指针几乎是不用来操作一维数组,更多的是用来操作二维数组。因为指针在访问连续的内存空间才有意义,如果是一维数组,p+1就会越界
数组指针与二维数组
通过指针变量去访问数组的元素
二、指针数组
本质:指针数组,是一个数组
整型数组:数组中的元素是整型
字符数组:数组中的元素是字符
指针数组:数组中的元素是指针(地址)
2.2.1 概念
元素为指针的数组
2.2.2 定义
以前定义一个整型数组:
Int arr[5];//定义了一个数组,数组中有五个元素,元素都是int类型
定义一个指针数组:
存储类型 数据类型 *变量名[元素的个数];
数组名先和*还是[ ]结合?
:此时变量名先和[ ]结合,所以定义的这个本质是一个数组
数据类型 * :数组中元素的数据类型
Int * arr[3];
//定义了一个数组,数组名为arr,数字组中有三个元素,每一个元素都是int *;
2.2.3指针数组与二维数组