• OOP 1.2 const关键字


    1.2 const关键字

    1、常量 指针常量

    定义常量:const 类型 =值
    定义指针常量:const *类型=值

    • 常量指针不可通过常量指针修改其指向的内容
    • 可直接修改其指向的内容
    • 常量指针的指向可以变化
    • 不可以把常量指针赋值给非常量指针(语法规定:const指针指向的地方p1倾向于该处尽量不要修改,若赋值给非常量p2,则以后可以通过修改p2指向内容修改p1,产生不安全因素)
    • 可以把非常量指针赋值给常量指针
    • 可以用强制类型转化 把常量指针赋值给非常量指针
      e.g.
    int n,m;
    const *p=&n;
    *p=5//illegal 常量指针不可通过常量指针修改其指向的内容
    n=4//OK 可直接修改其指向的内容
    p=&m;//OK 常量指针的指向可以变化
    
    const int *p1;int *p2;
    p1=p2;//OK 可以把非常量指针赋值给常量指针
    p2=p1;//illegal 不可以把常量指针赋值给非常量指针
    p2=(int *)p1;//OK 强制类型转换 合法
    

    2、实例:函数参数作为常量指针

    • 可避免函数内部不小心改变参数指针所指向的内容
      e.g.
    void f(const char *p)
    {
        strcpy(p,"this");//illegal strspy传入的第一个参数为char* 型,用const char给其赋值为非法,编译器报错
        printf("%s",p);//OK
    }
    

    3、常引用

    • 不能通过常引用修改其引用的变量
      e.g.
    int n;
    const int &r=n;
    r=5;//illegal 不能通过常引用修改其引用的变量
    n=4;//OK
    
  • 相关阅读:
    字符串的问题(strstr和strncpy 水题)
    数一数(KMP+思维)
    栗酱的数列(KMP+思维)
    D. Almost All Divisors(思维)
    E. Two Arrays and Sum of Functions(贪心)
    好位置(思维)
    Just A String(kmp)
    Dubbo简介
    lambda表达式快速创建
    分布式RPC系统框架Dubbo
  • 原文地址:https://www.cnblogs.com/fzu-031702148/p/8441587.html
Copyright © 2020-2023  润新知