关于 const 用法说明
2015-06-24 09:36
253 查看
http://www.openedv.com/posts/list/6536.htm
在这里是没什么区别的
一般人喜欢写 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 修饰什么,直接把定义的数据类型去掉再看就一目了然了。
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 修饰什么,直接把定义的数据类型去掉再看就一目了然了。
相关文章推荐
- poj2411 Mondriaan's Dream
- 免费CDN
- 用block将UIAlertView与UIActionSheet统一起来
- 多个Fragment 切换时不重新实例化
- 狄利克雷条件
- 添加网站外链的10个小技巧-成都网站建设
- Android系统开发必备知识
- hdu5273(区间逆序对的个数)
- 【转】python3.3.3右键菜单Edit with IDLE不能启动,打开IDLE后新建和打开闪退问题
- AndroidManifest.xml——data
- Android 使用正则表达式来快速生成多套dpi及分分辨率适配的UI
- 《实体解析与信息质量》- 2.1.9 信息质量(IQ)和实体解析(ER)
- 参数服务器学习笔记
- Rabit学习笔记
- 【DP】 HDOJ 5262 最强密码
- 11.1插序排序
- python字典
- 随笔
- XML在数据传输哪些方面会比JSON有优势,在哪些领域更加适合?
- #leetcode#Course Schedule