多级指针
多级指针变量:指向指针变量的指针变量
在下图中,定义一个a数组,再定义一个指针数组p[2],其中p数组中存储的是地址,再定义一个二级指针q指向p[0],即&p[0],又由于&p[0]就是p,所以q=p
指针数组的打印
1、使用数组s打印
2、使用二级指针p打印
p指向s的首地址,所以*(p+i)就是地址依次遍历,并解引用
void指针
1、一种不确定数据类型的指针变量,可通过强制类型转换让该变量指向任何数据类型的变量
2、void指针在没有强制类型转换前不能进行任何指针的算术运算
形式:void* <指针变量名称>
注意下图9~13行的细节,在9和12也可以直接赋值,p=&m,q=&n
使用void指针访问一维数组
void指针应用场景:在下图中不限制指针类型,void指针可转换成任何类型,使得函数功能更加强大
const变量
const <数据类型> 变量名 = [<表达式>];为了使得变量的值不能修改
常量指针:const <数据类型> *<指针变量名称> = [<指针运算表达式>];
不可通过指针改变其目标的数值
指针常量:<数据类型> * const <指针变量名称> = [<指针运算表达式>];
不能修改指针变量存储的地址值
main函数参数