欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Const

程序员文章站 2022-03-16 09:00:07
...
  1. const是常量的意思,被其修饰的变量不可修改
  2. 如果修饰的是类,结构体(的指针),其成员也不可以更改
  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是常量.