您的位置:首页 > 其它

关于 const 用法说明

2015-06-24 09:36 253 查看
http://www.openedv.com/posts/list/6536.htm

const u8 table_week[2]={0,1,2};
u8 const table_week[2]={0,1,2};

这有什么区别?


在这里是没什么区别的

一般人喜欢写 const u8,但是似乎 u8 const 更符合标准。

但是

u8 const * p;



u8 * const p;

就有区别了,

第一个,const 修饰的是 (*p),也就是说,指针指向的内存是常量,不可以被更改。

第二个,const 修饰的是指针变量 p,也就是说,指针本身是一个常量,不能被重写,比如我有另外一个指针 p2,但是就不可以写 p = p2; 但是 u8 * const p; 这样的定义是不能编译通过的,因为 const 变量必须在定义的时候就初始化。不过 C++ 的类成员变量稍有不同,是在构造函数中初始化。

=====================

看上面2楼的解释, const u8 * 和u8 const *意思一样 前面和u8 * const不一样,

他不是说

u8 const * p;



u8 * const p;

有区别,

第一个,const 修饰的是 (*p),也就是说,指针指向的内存里面存的东西是常量,不可以被更改。

第二个,const 修饰的是指针变量 p,也就是说,指针p本身是一个常量,不能被重写,但该指针指向的内容可以被修改

=======================
c语言深度剖析 关于const有解释,
const u8 * 和u8 const *意思一样
前面和u8 * const不一样,都把u8 去了,第一个和第二个一样的 都是const *

第三个是const*,所以第一个就是指针里面存的东西不能够修改,第二个p本身不不能修改,看const 修饰什么,直接把定义的数据类型去掉再看就一目了然了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: