指针:指针本身是一个变量,他存储的是数据在内存中的地址
指针变量:保存内存单元地址,可以运用指针运算符*访问内存
“*”的三种用法:
1. 3 * 5 :乘法
2. int *p :定义指针变量,*区分变量类型
3. *p = i :*取对象运算符
指针的指向:如果一个指针变量保存了一个对应类型变量的首地址,指针变量指向这个变量,可以运用指针运算符*访问指向变量
int i = 20;
int *p;
p = &i;//指针变量p指向i的地址
*p <=>i
二级指针:
int **q;
我们可以看成两部分,即:int * 和*q,后面*q表示指针变量,int*表示指针变量q只能存放在int*型变量的地址。
int i = 10;
int *q = &i;
int **p = &q;
数组指针:在C程序中,指针常用于引用数组,或作为数组中的元素。指向数组的指针称为数组指针,作为数组中的元素称为指针数组。
要声明指向数组的指针,必须要使用括号
int ( *p)[10] = NULL; //表示一个指针,指向一个有10个int类型元素的数组
int *p[10]; //没有括号,表示p是一个具有10个int指针类型的数组