Skip to content

指针

指针就是一个地址。

定义指针

int a = 10;
int * p;
p = &a;

取址符号 &

使用指针

通过解引用的方式来找到指针指向的内存。

*p

内存

指针也是一种数据类型,他储存了地址,例如 0x0000

32位操作系统,指针占4个字节;64位系统,指针占8个字节。

32和64表示CPU可以处理最大位数,一次性的运算量不一样,理论上64位的会比32位快1倍,内存寻址也不一样。

空指针与野指针

  1. 空指针用于给指针变量进行初始化
int * p = NULL;
  1. 野外指针指向了非法的内存空间
int * p = (int *)0x1100;

const 修饰指针

常量指针:

int a = 10;
int b = 20;

const int * p = &a :指针指向的值不可以改,指针的指向可以修改(常量指针)

int * const p = &a : 指针的指向不可修改,指向的值可以修改(指针常量)

指针的移动

指针的大小是4B,指针++会向后偏移4B;

指针和函数

函数参数可以接受实值,也可以接受地址。

地址传递

void swap(*a,*b)
{
int c = &a
}