当前位置: 首页 > news >正文

const

关键字const:
a.const是用来定义只读变量的,切忌它定义的是变量,不是常量,真的常量是#define的和enum。
b.在陈正冲老师的这本书中的第35页, 有说编译器不为普通const只读变量分配内存空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作,使得它的效率也很高,节省空间。具体的没怎么看懂,本次学习也不打算看懂了(因为它说const修饰的全局只读变量是在静态区的,我太认同)~~~嘿嘿
c.其实const就是修饰变量,然后 这个变量就不能当作左值了,当作左值,编译器就报错!!!
d. 其实const中最不好区分的知识点是,如图:
 
(可结合上文指针篇了解指针用法)
个人理解:
const在*前:p(地址)可变,指向的内容(*p)不可变
const在*后:p(地址)不可变,指向的内容(*p)可变
 
计数任意数组中成员数:
sizeof((const char *)data)+1;
其实对于这四个情况的记忆很简单,就是看const跟谁近,是const *p   ,还是  * const  p,还是const  *  const  p,这样就很容易看出来const是修饰谁的了吧。
e.但是const修饰的变量可以通过,指针将其改变。
f.const修饰函数参数表示在函数体内不希望改变参数的值,比如说在strcmp等函数中,用的都是const  char*
g.const修饰函数返回值表示返回值不可以改变,多用于返回指针的情况:

cosnt int* func()  

  •  
  •       static int  count  =  0;  
  •       count++;  
  •       return &count;  

h.在看const修饰谁,谁不变的问题上,可以把类型去掉再看,代码如下:

struct student  

  •  
  •           
  • }*str;  
  • const str stu3;  
  • str const stu4; 

str是一个类型 ,所以在去掉类型的时候,应该都变成const stu3和const stu4了,所以说应该是stu4和stu3这个指针不能被赋值。

 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/Ph-one/p/3992052.html

相关文章:

  • 关键字volatile
  • 关键字union
  • 周易·系辞
  • 马云牛啊 从骑自行车到坐迈巴赫只用20年
  • max3232
  • USB/232/485/TTL/CMOS(串口通信)⭐⭐⭐
  • 瘋子C语言笔记(指针篇)
  • keil_4/MDK各种数据类型占用的字节数
  • 汽车OBD接口定义
  • CAN/J1850/
  • STM32.BOOT
  • DMA(STM32)
  • STM32.printf
  • STM32各个文件介绍、uCOSII文件介绍
  • Cortex-M3基础
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 2017-08-04 前端日报
  • C++11: atomic 头文件
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • exports和module.exports
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Service Worker
  • vue中实现单选
  • 测试开发系类之接口自动化测试
  • 创建一个Struts2项目maven 方式
  • 入口文件开始,分析Vue源码实现
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信公众号开发小记——5.python微信红包
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # 数据结构
  • #include到底该写在哪
  • #Linux(make工具和makefile文件以及makefile语法)
  • #Linux(权限管理)
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (1)Android开发优化---------UI优化
  • (4)logging(日志模块)
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (JS基础)String 类型
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (动态规划)5. 最长回文子串 java解决
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (转)Google的Objective-C编码规范
  • (转)Windows2003安全设置/维护
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net组件程序设计之线程、并发管理(一)
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [ solr入门 ] - 利用solrJ进行检索
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945