C语言指针总结
指针:内存里的数据单元存储的是地址的数据类型,就是指针。
表示方式:int a = 10;int * p = &a;
指针三要素:则p的指针类型是int;指向类型即a的类型也是int;指向内容是10;
二级指针:一级指针的数据单元的地址存放的是另一个指针的地址
例如:int a = 10;
一级指针:int *p = &a;
二级指针:int *p2 = &p;
指针数组:强调的是数据,表示数组里的数据类型是指针。如:int *P[ ];
数组指针:强调的是指针,表示指针指向的类型是数组。如:int (*P)[ ];
二维数组:二维数组的第一维是最外部的那一层,第一维本身是个数组,这个数组中存储的元素也是个数组;二维数组的第二维是里面的那一层,第二维本身是个数组,数组中存的元素是普通元素,第二维这个数组本身作为元素存储在第一维的数组中。
二维数组的两种访问方式:以int a[2][5]为例,(合适类型的)p = a; a[0][0]等同于*(*(p+0)+0); a[i][j]等同于 *(*(p+i)+j);
指针常量:int * const P ;强调的是常量,表示该常量是一个指针;对P操作可以改变常量内容,而不能改变指针的指向。
常量指针:int const * P;强调的是指针,表示指向一个常量的指针;对P操作可以改变指向另一个常量,而不能改变常量内容。
指针函数:强调的是函数,表示函数的返回值是指针。如:int * func(int a);
函数指针:强调的是指针,表示指针指向的是一个函数。如:(int *)func(int a);