C语言指针部分的知识
程序员文章站
2022-06-24 20:11:02
1.总结C语言指针部分的知识。
一级指针、一维数组、数组指针
一维数组的数组名就是指针,如int a[4]={0}; a就相当于一个指针 int *p=a。...
1.总结C语言指针部分的知识。
一级指针、一维数组、数组指针
一维数组的数组名就是指针,如int a[4]={0}; a就相当于一个指针 int *p=a。
二级指针、二维数组、指针数组
二维数组 int aa[2][3]={0}。
这个时候是不能用int **pp=aa,但访问的时候应为**aa。
实际上二维数组的第一维是int (*ab)[3],是个指针数组,不是数组指针。
这个时候int (ab)[3]是与 int *不同的,所以接受二维数组时要用 int (*ab)。[3]==aa,不能用二级指针int**pp==aa,此时ab与aa相同。
指针数组是int *ab[3]这种形式,ab先与[]结合,形成一个一维数组,
这个数组的元素都是int*的指针,所以叫做指针数组。这个时候可以用int**p=ab,因为二级指针只能指向存有int*的位置,而数组内部都是int*的元素,所以数组指针就是二级指针,而二维数组不能直接作为二级指针。
它是一维指针数组int (*ab)[]。这个指针数组解释就是首先是一个指针(*ab),然后是一个数组,存放int元素。
可以用这个指针ab去访问,*ab第一个元素;(*ab)[1]第二个元素。
2.研究函数指针数组、指向函数指针数组的指针等概念。