献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法

2023-10-27

关键字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呢?我也如下的几下理由:

1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)

2). 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现

 

 

另外添加Dan Saks概括了const的所有用法

图片转载自http://www.docin.com/p-12638841.html

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法 的相关文章

  • javafx 图片加载不出来,并且文件是可导的情况

    1 检查是不是没有在new imgae 前面加上file 如果是文件的话 或者URL 如果是网址 2 可能是file 中间无意识加了空格 我就是这样怎么查都查不出来 这样的结果就是显示一片空白 没有图片 而且不报错 3 另外 注意如果批量命
  • Unity私有变量在其它脚本的获取

    Unity私有变量在其它脚本的获取 以下是脚本A private int curHealth 5 int value 2 public int Health set curHealth value get return curHealth
  • Spring学习--IOC容器的初始化过程

    IOC容器初始化概述 IOC容器初始化是由refresh 方法来启动的 这个方法标志着IOC容器的正式启动 Spring将IOC容器启动的过程分开 并使用不同的模块来完成 如使用ResourceLoader BeanDefinition等模

随机推荐