一.const的用途
1.定义const常量
2.可以修饰函数的形参,返回值,以及函数体。被const修饰的内容可以受到强制保护,防止被意外修改,提高程序健壮性。

const 返回值

函数返回值为 const  只有用在函数返回为引用的情况。 函数返回值引用常量表示不能将函数调用表达式作为左值使用。例如前面讲的返回引用的函数 min( )。

int  & min ( int  &i,  int  &j);

可以对函数调用进行赋值,因为它返回的是左值:min ( a ,  b )=4;
但是,如果对函数的返回值限定为 const  的:const  int  & min ( int & i, int  &j );
那么,就不能对 min ( a, b ) 调用进行赋值了。
 
二.const与define的不同
1.const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者没有类型安全检查,只有字符替换,并且在字符替换过程中可能产生意想不到的错误(边际效应)
2.有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试
 
三.在类数据成员前用mutable修饰,就可以在const函数中对其进行修改(可应用于对某些特殊成员变量进行修改,而大多数成员变量禁止被修改的情景)
 
四.sizeof
定义:判断数据类型在内存中所占用的字节数
注意
  • 当数据类型为指针时,sizeof(指针)恒为4,而与指针的类型无关
          eg: char * p = "0123456789";    sizeof(p) = 4;
          void * p =  (void * ) malloc (100);    sizeof(p) = 4;
  • 当数据类型为数组时,sizeof(数组)为数组的大小
          eg:char p[] = "0123456789", sizeof(p)=11;
          char p[100] = "0123456789", sizeof(p)=100;

1. 如果结构体中的元素的长度都小于处理器的位数,便以结构体里最长的数据元素为对齐单位

          
       2.如果结构体中存在长度大于处理器的位数的元素,则以处理器的位数为对齐单位
  eg:(64位系统)
  

最新文章

  1. EC笔记:第三部分:13、以对象管理资源
  2. Angular JS 学习之路由
  3. matlab处理图像代码
  4. C# 并行编程 之 轻量级手动重置事件的使用
  5. JavaScript脚本语言基础(四)
  6. iOS8 Size Classes的理解与使用
  7. dede只调用当天发布的文档
  8. 获取C#中exe程序的实例名
  9. 【HTML】Intermediate6:Text: Addresses, Definitions, Bi-directional, and Editorial
  10. 斯坦福大学IOS开发课程笔记(第七课第一部分)
  11. perl 回调函数
  12. effective c++ 条款18 make interface easy to use correctly and hard to use incorrectly
  13. CSS学习笔记:溢出文本省略(text-overflow)
  14. Java-Integer源码分析
  15. 关于Linux虚拟化技术KVM的科普 科普二(KVM虚拟机代码揭秘)
  16. 【英国毕业原版】-《博尔顿大学毕业证书》Bolton一模一样原件
  17. string类的几种方法
  18. Vue+localstrong登录注册,并保持登录状态
  19. nnet3的并行化训练
  20. 页面适配的小栗子 - github

热门文章

  1. Server responded "Algorithm negotiation failed" SSH Secure链接服务器错误
  2. TLS and SSL
  3. Spring:笔记整理(2)——IOC容器
  4. predis操作大全
  5. PHP/Yii2操作Cookie,常见问题以及注意事项
  6. oracle 定时删除3天前的备份数据
  7. Ag-grid控件使用pine:left后,配合iview下拉框,会出现闪烁
  8. shell复制除了某个文件的操作
  9. iOS应用网络安全之HTTPS
  10. Android系统--输入系统(一)必备的Linux知识_inotify和epoll