关键字const的位置对定义指针常量的影响

来源:互联网 发布:叁度软件 编辑:程序博客网 时间:2024/05/20 18:01

有时候我们会用const关键字来定义一个指针常量,来保证某些数据不被修改,下面我们来看三种将const放在不同位置的情况。

首先定义一个变量test

    int test = 10;

1 、const int * p = &test;

这行代码把p指向的int类型的值声明为const,这表明不能使用p来修改它所指向的值,但是却可以通过直接给变量赋值来修改值。
例如:

    *p = 9;  //错误,修改指针指向的地址的值    test = 9; //正确,修改变量的值

2 、int * const p = &test;

这行代码声明并初始化了一个不能指向别处的指针,可以用这个指针来修改它指向的值,但它不能再指向除它初始化时设置的地址以外的其他地址。
例如:

    int i = 20;    p = &i;  //错误,修改指针指向的地址    *p = 25;  //正确,修改指针指向的地址的值

3 、const int * const p = &test;

这样定义的指针既不能修改它所指向的地址,也不能修改它所指向的地址的值。
例如:

    int i = 20;    p = &i;  //错误,修改指针指向的地址    *p = 30;  //错误,修改指针指向的地址的值
阅读全文
0 0
原创粉丝点击