C指向常量的指针和指针常量

来源:互联网 发布:mac os qq截图 编辑:程序博客网 时间:2024/04/27 20:36

指向常量的指针:此指针指向一个内存区域,这个内存区域(编译期)只读,即是此指针指向的内存区域中的值不能改变。

指针常量:此指针是一个常量,即是无法改变指针的值,如果已经保存了内存单元A 的地址,则用内存单元B 的地址赋值给它将不能通过编译。


#include <stdint.h>int x = 328;int y = 222;// a pointer point to a read-only memory xconst uint32_t * after = & x;// a read-only pointeruint32_t * const pre = & y;int main (int argc, char** argv) {after = & y;pre = &x ;    // error*after += 20;   // error*pre += 30;return 0;}
以上代码中: after 即是一个指针,它的指向位置可以改变,即它不是一个只读的指针,但其指向的内总x ,是只读的,所以 * after += 20; 在编译期会报错。

pre 是一个只读的指针,即它不能改变指向的位置,但其指向的内存区中的值可以改变。所以 pre = & x; 在编译期报错。

0 0
原创粉丝点击