1.const
const是常量的意思,被其修饰的变量不可修改,如果修饰的类、结构体(的指针),其成员也不可以更改。const修饰的是其右边的内容。
struct Student{
int age;
};
int main() {
int age = 10;
int height = 20;
const int * p1 = &age;//p1不是常量 *p1是常量
int const * p2 = &age;//p2不是常量 *p2是常量
int * const p3 = &age;//p3是常量 *p3不是常量
const int * const p4 = &age;//p4是常量 *p4不是常量
int const * const p5 = &age;//p5是常量 *p5不是常量
p3 = &height;//p3不能修改指向,可以利用指针变量p3间接修改所指向的变量
p3 = 30;
Student stu1 = { 10 };
Student stu2 = { 20 };
const Student* pstu1 = &stu1;
*pstu1 = stu2;//*pstu1是常量 不可修改 故报错
(*pstu1).age = 30;//*pstu1是常量 所指内容不可修改 故报错
pstu1->age = 20;//*pstu1是常量 所指内容不可修改 故报错
pstu1 = &stu2;//pstu1不是常量 故可修改
Student * const pstu2 = &stu2;//pstu2是常量 *pstu2不是常量
*pstu2 = stu1;//*pstu2不是常量 故可修改
(*pstu2).age &