下班之后回去看书,刚好碰见室友。于是和室友讨论了一些东西。在讨论过程中有一个话题让我突然惊醒,那就是C语言中const的使用。最近在看一些书,也在慢慢学会去思考一些事情。一直在学习,从来没思考,是一件很可怕的事情。现在开始学会去思考,去提问,不愿只是记得就好,我宁愿去了解为什么,怎么做,目的是什么。
首先const我看过了好几遍,却依然会弄混它的使用。举例说明一下:
const char *ptr 与char const *ptr 是没有区别的,都是说明这个指针是个常量,即ptr所指向的内容不能使用ptr来修改,但是可以使用其他的变量进行修改,例如:
1 |
|
但是对于 char * const ptr 以及const char * const ptr 就不是很明白了。随着互联网的发展,学习的成本下降了,就可以直接在网上搜索一下就能找到相关的介绍。还是先简单学一下他们的含义并看一下例子吧。char * const ptr是指ptr所指向的地址不能改变,但是可以通过ptr修改ptr所指向的地址中的数据;const char * const ptr 指向的地址不能改变,也不能通过ptr修改ptr所指向的地址中的数据。还是看一下例子吧,实践出真知:
1 |
|
通过例子我们可以看出期间的差别,但是这内部是怎么实现的呢,只能通过调试查看汇编才能真正的了解吧,所以最好还是看一下汇编代码