Const
程序员文章站
2022-03-16 09:00:07
...
- const是常量的意思,被其修饰的变量不可修改
- 如果修饰的是类,结构体(的指针),其成员也不可以更改
int main() {
// 常量在定义的时候必须赋值
const int age = 10;
}
定义一个结构体
struct Student {
int age;
};
int main(){
// 如果结构体赋值为const,那么这个结构体的值不会再改,不允许再赋值,达到常量的目的
const Student stu = {20};
Student stud = {20};
Student *pStu = &stud;
pStu ->age = 50
}
以下5个指针分别是什么含义
int age = 10;
const int *p0 = &age;
int const *p1 = &age;
int *const p2 = &age;
const int * const p3 = &age;
int const *const p4 = &age;
结论:
const修饰的是其右边的内容
int height = 20;
int age = 10;
int *p0 = &age;
*p0 = 20; // 一种是改指针所指向的那块内存的内容.
p0 = &height; // 一种改指针的指向.
const int *p0 = &age;// 代表 *p0是常量,p0不是常量,不能通过指针修改所指向的内容,
const 修饰的是 *p0,所以 *p0不可以改,p0可以改.
int const *p1 = &age;//与p0一样,代表 *p1是常量,p1不是常量
int *const p2 = &age;//const在 *号的右边,只修饰右边的东西,右边是p2,所以p2不可以改, *p2可以改,代表p2是常量, *p2不是常量,不能修改指针的指向,但是可以通过指针修改所指向的内容.
const int * const p3 = &age;//第一个const修饰的是 *p3,第二个const修饰的是p3,代表p3是常量,*p3是常量.
int const *const p4 = &age;// 第一个const修饰的是 *p4,第二个const修饰的是p4,代表p4是常量,*p4是常量.
上一篇: 一套有效应对技术面算法题的方法论
下一篇: 什么是css预编译