浅谈const
来源:互联网 发布:淘宝一折特卖 - 百度 编辑:程序博客网 时间:2024/04/30 23:13
今天在看《C专家编程》的过程中,发现以前自己对const一直存在误解,一直以为声明变量用了const,差不多久就变成常量了,今天仔细斟酌了一下,终于知道自己理解错了,到底还是菜鸟啊,哈哈。
我个人感觉const还是比较容易混淆,关键字const并不能把变量变成常量,在一个符号前加上const限定符只是表示这个符号不能被赋值,也就是它的值对于这个符号来说是只读的。
要说明const不是真正表示常量,这很容易,比如:
const int two=2;
switch(i){
case 1 : printf("case 1/n");break;
case two : printf("case 2/n");break;
case 3 : printf("case 3/n");break;
default : printf("default/n");break;
}
当i为2的时候,上面的代码在case two那行将产生一个"case expression not constant"的编译错误,这并不是switch语句本身的过错,但这条switch语句展示了const其实并不是真正的常量。
const可以用再数据上,如:const int limit=10; 这个很常见,当你在等式两边加上指针,对我这样的小菜就有点难度了:
#include <stdio.h>
int main()
{
int i = 10,n=8;
const int *p = &i;
printf("%d/n",*p);
i=6; //i的值对于const是只读的,但是它可以通过程序的内部(甚至是外部)的方法来修改这个值
printf("%d/n",*p);
p=&n; //指针本身的值是可以改变的
printf("%d/n",*p);
return 0;
}
上面这段代码表示p是一个指向常量整型的指针。这个指针不能用于修改这个整型数,但是在任何时候,这个指针本身的值是可以改变的。这样,它就指向了不同的地址。const仅说明,你不能通过改指针修改它指向的值。并不能说明它指向的这个变量不能在其他地方修改。
- 浅谈const
- 浅谈 const
- 浅谈const
- 浅谈const
- 浅谈const限定符
- c++之浅谈const
- 浅谈const的使用
- 浅谈C++中的Const
- 浅谈const,static,extern
- 浅谈C++const、sizeof
- 浅谈define和const区别
- [C++]浅谈C++中的const
- 浅谈C++ 之 const与指针关系
- 浅谈C和C++ const关键字
- 浅谈const限定符——c++
- 浅谈var、let、const的区别
- 浅谈C++中const的引用
- 工作日常--浅谈ES6的let/const
- 关于Hibernate的一点东西
- 苹果真的很厉害!
- vim中使用gdb, pyclewn
- 如何进行网站优化(转)
- Hive-0.5中SerDe概述
- 浅谈const
- D3DXMatrixLookAtLH
- js滚动条
- 用内存设备环境(Memory Device Context)与GetClipBox函数(获得需要重绘的区域)实现无闪烁的高效绘图
- SharpStreaming项目开发纪实:构建基本的服务器及客户端应用(六)——服务器通信部分初步实现
- mxmlc FLEX命令行编译could not find JRE / JVM
- LINUX系统的运行级别
- 约瑟夫问题
- web 页面防复制防拷贝