打印
[STM32]

C 的 const 用法

[复制链接]
667|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
千岁寒|  楼主 | 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

粉丝