指针
指针
概念
指针:是一种数据类型,存储内存的编号(地址)
- 指针存储了它所指向的变量的首地址(第一个字节的地址)
- 指针的类型确定了空间范围
- 指针类型与变量类型要一致(通常)
可变类型的指针
void *p;
‘’’c
// 声明整型变量
int a = 3;
// 整型指针变量,未初始化,nil(空),可打印值,不可访问
int *p;
int *p2;
.
//赋值,指针 p 指向了 a,可以通过指针 p 操作变量 a
p = &a;
p2 = &a;//或者表示为p2 = p 代表两个指针指向同一个空间
。
。
p2 空指针
p2 = &p1; //p2 指向 p1,存储了变量p1所在的内存空间编号
//寻址并复制
*p2 = 42
int b = a;
b = 9;
//a ?
int *pa = &a;
*pa = 9;
.
// sizeof(p) = 8 byte;x86,64
& 运算 *
& 取地址运算,获得内存地址,若打印 %p
- 声明指针变量,出现在类型后: char *c;
- 间接寻址运算,没类型名,在指针变量前: int r = *c;
指针存储其他变量的地址,它自己也有地址
指针变量,不论是什么类型,它的 size 都是确定的,只与平台相关8byte