1.定义指针变量的一般形式
基类型 * 指针变量名
2.整型是用来装整数的数据类型。
指针是用来装地址的数据类型。
3. * 指针运算符 二级 自右向左
& 取地址运算符 二级 自右向左
4.(1)通过指针变量中的值到内存空间中定位。
(2)从定位处开始向后偏移sizeof(基类型)。
(3)将偏移好的那部分内存空间当作是一个基类型来看。
5.函数之间实参和形参的传参是值传递,对形参的修改不会影响实参。如果传的是地址则可以进行修改,所以产生了指针的用法,一个变量的地址称为该变量的“指针”。
6.函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传到另一个函数中。
以下程序为用指针方式求最大值。
当* 和& 同时出现时,二者相互抵消,如下:
7.数组也可以作为指针,数组传参时本身传递的就为首元素地址。
如果有一个数组a [ ] = {1,2,3,4,5,6,7,8,9,0},int *p = a,p = p + 1;执行完毕后p的地址为a[1]的地址,打印*p为a[1]的值2。倘若不是数组,进行p + 1 ,结果为在该地址向后偏移了sizeof(基类型)。
所以就产生了以下的写法:
a[i] <---> *(a + i)
由此,我们也可以用指针来写出数组的一系列的代码,如排序,二分查找等。
8. int *p;
p = NULL;
代表指针的一种状态,表示当前指针p不可以被访问。