const的理解

Const

  • 什么是CONST
    • 被const修饰后的变量,只能保持一个值,无法再次赋值(一次指定用一辈子);
int main(){
const int age=18;
//age =20;//这句错误无法执行!!!
return 0 ;
}
  • 如果修饰的是类、结构体、结构体或类的指针、其成员都不可以更改
struct date{

    int year;
    int month;
    int day;
}
int main(){
    
    /*const struct date y_2024 {
        2024, 3, 9
    };*/
   
    /*const*/struct date * ptr = &y_2024;//指针指向const 修饰的结构体
    (*ptr).month = 2012;//(*p)取出指针所指向的(当前指向的是y_2024)可以赋值 如果定义指针时前面加上修饰词const则无法赋值,编译出错
    ptr.year->year=2012;//错误不可修改!!
    y_2024.year=2012;//错误,不可修改!!
    return 0 ;
}

总结

被const修饰的东西只能保持默认数值,不可以修改。


这是什么意思分别是什么含义

  • const修饰的是其右边的内容!修饰左边的所有类型名
int age=10;
int *px=&age;//px内存储的是age的逻辑地址 *px是访问age的数值
const int *p1=&age;//修饰的是 *p1 修饰的一般是整体 所以p1可以修改,可以通过修改其指向的逻辑地址来修改数值
int const *p2=&age; //修饰的是 *p2
int * const p3=&age;//修饰的是p3与*无关 p3就是常量 而*p3可以赋值,非常量


const int * const p4=&age;//修饰的*p4和p4 他俩都是常量 所以俩都不能修改

int const * const p5=&age;//和p4一样的没啥好说的

posted @ 2024-03-12 11:58  dxwxb  阅读(121)  评论(0)    收藏  举报