我经常使用指向 const 对象的指针,就像这样......
const int *p;
这仅仅意味着您无法更改整数p
指向通过p
。但我也看到了对 const 指针的引用,声明如下......
int* const p;
据我了解,这意味着指针变量itself是常量——你可以改变它整天指向的整数,但你不能让它指向其他东西。
那有什么可能的用处呢?
当您为嵌入式系统设计 C 程序或需要引用同一内存(共享内存的多处理器应用程序)的特殊用途程序时,您需要常量指针。
例如,我有一个32位MIP处理器 http://flickr.com/photos/adavis/2945502665/有一个小液晶显示器 http://flickr.com/photos/adavis/2946164671/附于其上。我必须将 LCD 数据写入内存中的特定端口,然后将其发送到 LCD 控制器。
我可以 #define 该数字,但随后我还必须将其转换为指针,而当我这样做时,C 编译器没有那么多选项。
此外,我可能需要它是易失性的,也可以进行强制转换,但使用提供的语法更容易、更清晰——指向易失性内存位置的常量指针。
对于 PC 程序,一个例子是:如果您设计 DOS VGA 游戏(网上有一些教程,学习基本的低级图形很有趣),那么您需要写入 VGA 内存,这可能会被引用为偏移量来自 const 指针。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)