1.作用:可以通过指针间接访问内存
(1)内存编号是从0开始记录的,一般用十六进制数字表示
(2)可以利用指针变量保存地址
2.语法数据类型 * 变量名;
例如:int a = 10; int * p; p = &a;
(&是取址符号)
使用:解引方式,指针前加 *
3.指针所占内存
32位操作系统下,一个指针占用4个字节
64位操作系统下,一个指针占用8个字节
4.空指针
指针变量指向内存中编号为0 的空间(0-255内存编号被系统占用)
用途:初始化指针变量
注:空指针指向的内存是不可以访问的
例如int * p = =NULL;
野指针:指向非法的内存空间(超出范围)
5.const修饰指针
(1)const修饰指针----常量指针
方法:在指针前加const
例如const *int *p = &a;
特点:常量指针的指向可以修改,但指针的指向的值不能修改
(2)const修饰常量----指针常量
例如int *const p = &a;
特点:指针常量的指向不可以改变,但指针常量的指向可以改变
(3)const既修饰指针又修饰常量
例如consr int *const p = &a;
特点:指向和指向的值都不可以改变
6.指针和数组
作用:利用指针方数组中的元素
语法arr[] = { };
注:数组名就是数组首地址
7.指针和函数
作用:地址传递
例如void swap(int *p1,int *p2) { }
注:如果是地址传递可以修饰实参