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修饰过的变量不能通过二次赋值更改,但可通过指针间接更改其值。
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 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)
}
运行结果:
int const p使得p指向的地址无法改变,使用m可改变其所指向的地址。
以上就是本文所有内容,欢迎指正~