当前位置 : 主页 > 编程语言 > c语言 >

浅谈const的用法(对数据的保护)及如何巧妙规避已有的const用法

来源:互联网 收集:自由互联 发布时间:2023-08-25
const 基本用法 const限定符可使变量无法被修改,从而达到保护数据的目的 例1: const int a=10; 该行代码可使变量a无法通过二次赋值更改,从而防止在代码块中被修改。 例2: 如 const int

const 基本用法

const限定符可使变量无法被修改,从而达到保护数据的目的

例1:

const int a=10;

该行代码可使变量a无法通过二次赋值更改,从而防止在代码块中被修改。

例2:

const int *p;

该行代码使得指针p指向的值无法被更改

例3:

int * const p

该行代码使得指针p指向的地址无法改变,不可再指向其他地址。


如何规避已有的const从而更改变量数据呢?

1.使用指针更改const修饰的变量(处理例1)

#include <stdio.h>
int main()
{
    const int a = 10;
    printf("修改前a=%d\n", a);//打印修改前a的值
    int* p = &a;
    *p = 20;
    printf("修改后a=%d\n", a);//打印修改后a的值
}

运行结果:

浅谈const的用法(对数据的保护)及如何巧妙规避已有的const用法_赋值

const修饰过的变量不能通过二次赋值更改,但可通过指针间接更改其值。


2.使用二级指针更改(处理例2)

#include <stdio.h>
int main()
{
    int num = 10;
    const int* p = #
    printf("修改前num=%d\n", num);//打印修改前num的值
    int** m = &p;
    **m = 20;
    printf("修改后num=%d\n", num);//打印修改后num的值
}
    

运行结果:

浅谈const的用法(对数据的保护)及如何巧妙规避已有的const用法_二级指针_02

使用二级指针更改const int p    通过p改变不了num的值,则可通过使用二级指针**m改变p的值。

3.使用二级指针更改(处理例3)

#include <stdio.h>
int main()
{
    int num = 10;
    int num1 = 20;
    int* const p = #
    printf("原num=%d\n", *p);//打印修改前的指针p指向地址的值(num)
    int** m = &p;
    *m = &num1;
    printf("现num=%d\n", *p);//打印修改后的指针p指向地址的值(num1)
}

运行结果:

浅谈const的用法(对数据的保护)及如何巧妙规避已有的const用法_#include_03

int const p使得p指向的地址无法改变,使用m可改变其所指向的地址。


以上就是本文所有内容,欢迎指正~



【文章原创作者:高防cdn http://www.558idc.com/gfcdn.html提供,感恩】
上一篇:【C++STL基础入门】string迭代器
下一篇:没有了
网友评论