指针:
常指针和常量指针。const
普通指针不能指向常量,要用常量指针。
常量指针的值可以改变,但是不能用指针修改指向的值。可以指向常量也可以指向变量。
//常量指针
const int *p1;
int const *p2;
常指针指向的值不能改变,但是可以通过指针修改对应的值。只能指向变量。使用时需要初始化。初始化后不能再修改。
//常指针
int const *p3 = (地址);//初始化
指向常量的常指针。指针不能被修改,指针指向的地址也不能被修改。
int const * const p4;
const后面的值不能被修改。
结构体指针:
此外为了使用的方便和直观,用指针引用结构体变量成员的方式:
(*指针变量名).成员名
可以直接用:
指针变量名->成员名
代替。
以下 3 种形式是等价的:
- 结构体变量.成员名
- (*指针变量).成员名
- 指针变量->成员名
单片机的地址和状态
了解地址分布要参考数据手册。