[STM32] C 的 const 用法

[复制链接]
 楼主| 千岁寒 发表于 2018-9-7 10:19 | 显示全部楼层 |阅读模式
ST, tc, NTC, AC, TI
(1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。
(2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。
(3)两个const,*左右各一个,表示指针和指针所指数据都不能修改。
-----------------------------------------------------------------------------------------------------------------------------------
const int *a;   表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量;也可以写成int const* a,含义相同。

int * const a;  表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。
char str[] = "test";   
const char* p = str;  //non-const p, const  data
char* const p = str;  //const p, non-const data

const int *p1;
int const *p2;
int * const p3;
在最后一种情况下,指针是只读的,也就是 p3 本身的值不能被修改;
在前面两种情况下,指针所指向的数据是只读的,也就是 p1、p2 本身的值可以修改(指向不同的数据),但它们指向的数据不能被修改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

244

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部