指针
1. 概念
计算机种所有的数据都必须存在内存中,不同数据类型的数据占用的字节数不同,为了能够正确的访问这些数据,C语言就为每个字节都设置了编号,这个编号就叫做地址或者叫指针
在C语言中,将地址形象的称为“指针”,一个变量的的地址称为变量的“指针”,一个专门用来存放另一个变量的地址的变量,则称为指针变量
地址:操作系统的寻址空间编号,也就是操作系统给每个存储单元分配了统一的编号
指针就是地址
指针变量就是保存地址编号的变量
32bit平台下,地址总线32位,所以地址编号32位编号,指针变量就是32位即4字节
2. 指针的定义方法
指针的定义:
数据类型 *指针变量名;
数据类型 *指针变量名1,*指针变量名2,*指针变量名3,...;
*号在指针变量定义时不能省略,否则就会变成一般变量的定义
指针的运算符
&:获取一个变量的地址
*:在定义一个指针变量时,起到表示作用,表示定义的是一个指针变量,除此之外其它地方都表示获取一个指针变量保存的地址里面的内容
扩展:如果一行中定义多个指针变量的前面都需要加*修饰
指针变量中只能存放地址,与指针相关的两个运算符时&(取地址运算)和*(指针运算)
int *p;//定义一个int型指针变量
int *p1, *p2, *p3;//定义三个int型指针
int *pa = NULL;//空指针
int *pb;//野指针
void *pd;//万能指针,可以指向任意数据类型
int *p;//定义一个int型指针变量
int *p1, *p2, *p3;//定义三个int型指针
int *pa = NULL;//空指针
int *pb;//野指针
void *pd;//万能指针,可以指向任意数据类型