const就像是一把锁,如果在定义时表达式前面加上了const,那么所定义的变量就会变为只读状态。在做项目时,我们如果不想让用户改变某个变量的值,那么我们就会在定义变量时加上const。const在指针上的用法有三种,如果在*和p前面都加上const,就相当于将指针锁住并且将它指向的地址也锁住,也就是指向不可改,内容也不可改。如果只在*前面加const,就是将指向的地址锁住,就是指向可改,内容不可改。要是只在p前面加上const,那么就是将指针锁住,但仍可以通过*p改变他指向的空间,也就是指向不可改,内容可改。
const作用:修饰一个变量使之变成常量
要求:必须初始化
将变量变为常量 常量化 必须初始值 const放在int后也可以
const int h = 8848;
const double PI = 3.1415926;
//h = 8847;//变量值不可修改 表达式变为了不可修改的左值
但是防君子不防小人,仍然可以通过指针对其进行修改
//不建议 绕过变量的修改值
int* p = &h;
*p = 8846;
printf("%d\n", h);
const 修饰指针变量:
1:指针变量不可指向新地址
2:指针变量指向的地址数据不可修改
//------指向可改 内容不可改------------//
int a = 3, b = 4;
int const* p = &a;
*p = 10;
p = &b;
//----------指向不可改 内容可改---------------//
int a = 3, b = 4;
int* const p = &a;
*p = 10;
p = &b;
//----------指向不可改 内容不可改---------------//
int a = 3, b = 4;
int const* const p = &a;
*p = 10;
p = &b;
--结论:const放到谁的前面,谁就不可改---------------