在学习了一些关于指针的知识后,写下这篇博客来巩固指针。
1.指针变量里存放的就是地址,指针指向什么类型,指针变量就是什么类型;
2.注意野指针的规避
注意指针初始化,初始化就是将指针指向NULL。
同时要注意指针越界,指针变量不再使用时,要及时置为NULL,并且在使用前要检查指针的有效性。
3. 一个关于数组名的知识点
在使用数组时,对数组名的调用。只有sizeof(数组名)和&数组名,这里的数组名代表的是整个数组,其他的情况,引用数组名就是表示数组首元素的地址。
4.指针数组
指针数组是一种数组,里面的每个元素都是用来存放指针变量的,也就是地址。
5.数组指针变量
数组指针是一种指针变量,用来存放数组地址的指针变量。
类型就是 int (*p)[10]=&arr arr是一个数组,存放的就是数组的地址,此时要注意*p必须用括号,因为[]优先级比*要高。
二维数组的数组名是第一行的地址。可以把二维数组看成几个一维数组。第一行就是第一个一维数组。
6.函数指针
函数指针,指针指向的就是函数,里面存放的是函数的地址。
&函数名与单独使用函数名都表示函数的地址。
一个例子:int* (*pa) (char*)=&arr 这里的int*就是指向的元素的类型,char*就是函数参数的类型。引用函数时,就是(*pa)(char*类型的元素)