关键字const有什么含意? (转载)
一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可 以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)
如果应试者能正确回答这个问题,我将问他一个附加的问题:
下面的声明都是什么意思?

const int a;
int const a;
const int *a;
int * const a;
int const * a const;

前 两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型 数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数 是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:
•; 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理 其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
•; 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
•; 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

转载于:https://www.cnblogs.com/fjchenqian/archive/2009/01/23/1380553.html

(转)关键字const有什么含意?相关推荐

  1. 关键字const是什么含意

    const  int  a; int  const  a; const int *a; int  *const  a; int  const  *a  const; 前两个的作用是一样,a是一个常整型 ...

  2. 关键字const是什么含意?

    我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道.去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embed ...

  3. 关键字const有什么含意?修饰类呢?static的作用,用于类呢?还有extern c的作用

    const 意味着"只读",下面的声明都是什么意思?   const int a;   int const a;   const int *a;   int * const a; ...

  4. C语言面试题小练——第10天:宏定义一年的秒数、变量定义练习、关键字volatile有什么含意

    文章目录 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 2. 用变量a给出下面的定义 3. 关键字volatile有什么含意?并给出三个不同的例子. 1. 用 ...

  5. C语言再学习 -- 关键字const

    const 关键字其实我们并不陌生,之前有讲过const修饰数组和指针.现在来详细介绍这个关键字. 参看:[C/C++和指针]著名的<const的思考> 一.const 介绍 1.cons ...

  6. C语言关键字----Const

    C中CONST的使用: 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题. 问题:const变量 & 常量 为什么下面的例子在使用一 ...

  7. 第三节:ES6中另一个不得不说的关键字const

    之前感觉在微信上看含有代码的文章体验很差,特别是阅读代码的时候,这次我给代码部分着色了,希望大家能看得舒服点:还有配上了图,更有趣好玩了,坚持一个宗旨:相信编程讲课可以更通俗易懂.更有趣.也欢迎大家积 ...

  8. C语言中关键字const、typedef

    const:const是C语言的一个关键字,是用来定义常量的.const是常属性的意思,当一个变量被const修饰之后,其值不能再被改变了,但它仍然是一个变量,只不过有了常属性. 我们如何才能验证这一 ...

  9. 关键字const——const char*和char* const

    文章目录 概述 const char* 和char* const define 和 const 概述 关键字const一般用来修饰定义常量.使用const修饰的变量就不能被更改了.这是因为在编译时,编 ...

最新文章

  1. 华为AC6605与OSSH免费版华为Portal系统的对
  2. 爬楼梯—leetcode70
  3. java batch_Java EE 7 Batch中传递属性/参数的2种方式
  4. SQL的主键和外键约束 小记
  5. 证明:含有n个结点的二叉链表中含有n+1个空链域
  6. java C# objective-c AES对称加解密
  7. SignalR的Javascript客户端API使用方式整合
  8. sqlserver触发器如何将一个库中的数据插入到另外一个库中
  9. 软件度量都该度个啥?
  10. cass中的地形图打印细节
  11. Bootstrap框架---Uploadify插件----多张图片上传交互方式一
  12. 海信电视怎么删除自带应用
  13. Linux 打开文件显示: No such file or directory
  14. 信用社计算机专业大纲,广西农村信用社计算机专业试题
  15. 测试用例编写练习(二)
  16. 迪拜国际学术城各所大学中国学生入学人数持续增长
  17. Selenium自动化测试面试题
  18. visibility 和 display 的区别
  19. TortoiseSVN-1.6.5.16974(开源文件版本管理软件) 安装图解教程及下载文件
  20. C语言提高篇之——动态内存管理

热门文章

  1. otis电梯服务器tt使用说明_南充私人电梯
  2. 如何让小程序页面更顺滑_小程序怎样让wx.navigateBack更好用的方法实现
  3. 基于javaweb(springboot+mybatis)网站建设服务管理系统设计和实现以及文档报告设计
  4. linux redis 启动用户,redis 进程使用root用户启动 -- 整改方案
  5. 如何学习matlab 知乎,知乎日报
  6. c语言指针算法分析怎么写,什么叫指针算法啊??
  7. 如何进入embl的ebi网站fasta3服务器,The EMBL-EBI bioinformatics web and programmatic tools framework...
  8. android+自定义alertdialog,安卓自定义AlertDialog
  9. 【youcans 的 OpenCV 例程200篇】135. 形态学重建之粒度测定
  10. 从一个深度图里面导出NARF特征