[c++基础] const char and static const char
部分内容摘自:https://blog.csdn.net/ranhui_xia/article/details/32696669
The version with const char *
will copy data from a read-only location to a variable on the stack.
The version with static const char *
references the data in the read-only location (no copy is performed).
在函数内部,const char *每次调用函数时,都需要在stack上分配内存,然后将数据拷贝过来,函数退出前释放。
而static const char *,会直接访问read only的数据,无需再stack上分配内存。
char * const cp : 定义一个指向字符的指针常数,即const指针
const char* p : 定义一个指向字符常数的指针
char const* p : 等同于const char* p
举个例子:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 int main() 6 { 7 char ch[3] = {'a','b','c'}; 8 char* const cp = ch; 9 printf("char* const cp: \n %c\n", *cp); 10 /* 11 ** cp point to a fixed address 12 ** 13 cp++; //error: increment of read-only variable ‘cp’ 14 printf("char* const cp: \n %c\n", *cp); 15 ** 16 */ 17 18 const char ca = 'a'; 19 const char* p1 = &ca; 20 21 /* 22 ** 2. Only const char* pointer can point to a const char 23 ** 24 const char cb = 'b'; 25 char* p2 = &cb; //error: invalid conversion from ‘const char*’ to ‘char*’ 26 ** 27 **/ 28 29 /* 30 ** 3. p1 points to a const char, the char be pointed has to be const, 31 ** p1 can point to a different const char 32 */ 33 printf("const char* p1: \n %c\n", *p1); 34 const char cb = 'b'; 35 p1 = &cb; 36 printf(" %c\n", *p1); 37 return 0; 38 } 39 40 /* 41 ** Output: 42 char* const cp: 43 a 44 const char* p1: 45 a 46 b 47 ** 48 */
转载于:https://www.cnblogs.com/shiyublog/p/9757038.html
[c++基础] const char and static const char相关推荐
- C++ static、const和static const类型成员变量声明及其初始化
C++ static.const和static const类型成员变量声明及其初始化 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. ...
- [error] MFC错误不能将参数1从const char [3]转换为const wchar_t *
在做项目中经常遇到很多错误,这里我仅仅把自己遇到的一些错误和解决方法写出,供自己和大家查看. 代码如下: CRect rect; GetClientRect(&rect); CString s ...
- char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p
char * const p; //常量指针,p的值不可以修改 char const * p://指向常量的指针,指向的常量值不可以改 const char *p: //和char const *p
- C++中 出现C2664错误代码 从“const char [29]”转换为“const wchar_t *”
报错内容: 报错无法 从"const char [29]"转换为"const wchar_t *" 解决办法 在属性页面将字符集修改为:使用多字节字符集就可以了 ...
- typedef,static,const用法
一.typedef主要功能是定义一个已存在类型的别名,但是和宏并存 宏与typedef区别 1.宏定义只是简单的字符串替换 2.typedef定义的类型是类型的别名,typedef后面是一个整体声明, ...
- only static const integral data members can be initialized within a class
翻译一下:只有静态整型常量数据成员能在类中初始化 那么哪些数据属于整型呢,下面的都是 char short int long long long 所以只有以上这些类型的数据能在类中初始化,也就是你可以 ...
- static, const, static const 与 const static
1. static const/ const static, 意义一样 namespace NdpiTransformersTest{class TestMain{public: ~TestMain( ...
- 利用反射获得类的public static/const成员的值
首先,我们定义一个类: class CDynamic{ #if truepublic const string TableName = "p_battlerecord"; // O ...
- 以下关于c语言中static和const,c语言中static const作用
c语言中static const作用 (2012-06-21 07:51:08) 标签: it 关键字static: 1. 在函数体内,一个被声明为静态的变量在这一个函数被调用的过程中维持其值不变. ...
最新文章
- 神奇的 SQL 之别样的写法 → 行行比较
- 大型运输行业实战_day14_1_webserivce简单入门
- matlab实现彩色图像灰度化的三种方法
- graylog2 架构--转载
- Android——怎么在一个 Activity 中销毁另外一个 Activity
- 浅谈5G机房配套那些事
- “数据湖”:概念、特征、架构与案例
- DataGrid 功能实现收集(转)保留做参考
- java 获取继承字段_java – 从类中获取所有字段(甚至是私有的和继承的)
- 服务容错保护断路器Hystrix之四:断路器监控(Hystrix Dashboard)-turbine集群监控
- HDU 5934:Bomb(强连通缩点)
- html图片等比例拉伸,CSS控制图片等比例缩放
- 网络基础知识(黑马教程笔记)-5-路由
- 百度硬盘搜索SDK接口说明(摘自百度)
- 《深入浅出MFC》下载
- 为大家带来的是C语言入门视频教程
- 常用z反变换公式表_常用excel快捷键
- Top9竞赛总结-NLP语义相似度 第三届拍拍贷“魔镜杯”大赛
- Macbook Pro Air锁屏不进入睡眠
- Volatile底层实现原理
热门文章
- Python系统学习流程图, 教你一步步学习python
- Python自学真的可以学好嘛?
- 博士笔记 | 周志华《机器学习》手推笔记第三章-线性模型
- 腾讯PCG光影研究室招聘计算机视觉算法/实习生
- 阿里达摩院发布2019十大科技趋势!AI专用芯片将挑战GPU的绝对统治地位
- c语言随机读写信息fetch,北京大学信息科学技术学院考试试卷-计算机系统导论-期中-2015(16页)-原创力文档...
- 复练-关于面试的科技树-能力三核的彩蛋
- php后台登录显示ok,thinkphp的项目 后台登录问题,怪事
- mysql efbbbf_MySQL中修理特殊不可见uft8字符 - trim
- 机箱硬盘指示灯不亮_一文学会“剪不断,理还乱”的主板跳线与机箱连接