C语言指针和内存空间
指针
内存类型的资源地址
指针变量
含义
存放内存类型的资源地址
大小
32位系统中:4个字节
读取大小
修饰符决定
示例
// 定义
int *p = NULL;
修饰符
【修饰指向的空间】(*【修饰当前指针】p【修饰当前指针】)【【数组/函数修饰符】修饰指向的空间】;
const
const *:指向的地址的空间不可写
* conts:固定指针指向的空间地址
const char *p = NULL; // 指向类型为 const char 空间的指针
char const *p = NULL;
char *const p = NULL; // 指向类型为 char 空间的 const类型指针
char *p const = NULL;
volatile
防止优化
volatile char *p = NULL; // 指向类型为 char 空间的指针(取值每次都重新读取)
char volatile *p = NULL;
typedef
重命名指针类型
typedef char * i8p_t;
i8p_t p;
运算
++, --, +, -
p +/- n: 指向的地址 +/- n * sizeof(*p)