• const限定词使用


    可以⽤const关键字创建不允许修改的数组:
    const int days1[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    1.在指针和形参声明中使⽤const
    声明普通变量和数组时使⽤ const 关键字很简单。指针则复杂⼀
    些,因为要区分是限定指针本⾝为const 还是限定指针指向的值为
    const。下⾯的声明:
    const float * pf; /* pf 指向⼀个float类型的const值 */
    创建了 pf 指向的值不能被改变,⽽ pt 本⾝的值可以改变。例如,
    可以设置该指针指向其他 const值。相⽐之下,下⾯的声明:
    float * const pt; /* pt 是⼀个const指针 */
    创建的指针pt本⾝的值不能更改。pt必须指向同⼀个地址,但是它
    所指向的值可以改变。下⾯的声明:
    const float * const ptr;
    表明ptr既不能指向别处,它所指向的值也不能改变。
    还可以把const放在第3个位置:
    float const * pfc; // 与const float * pfc;相同
    如注释所⽰,把const放在类型名之后、*之前,说明该指针不能⽤
    于改变它所指向的值。简⽽⾔之, const放在*左侧任意位置,限定了
    指针指向的数据不能改变;const放在*的右侧,限定了指针本⾝不能改
    变。
    const 关键字的常⻅⽤法是声明为函数形参的指针。例如,假设有
    ⼀个函数要调⽤ display()显⽰⼀个数组的内容。要把数组名作为实际
    参数传递给该函数,但是数组名是⼀个地址。该函数可能会更改主调
    函数中的数据,但是下⾯的原型保证了数据不会被更改:
    void display(const int array[], int limit);
    在函数原型和函数头,形参声明const int array[]与const int * array
    相同,所以该声明表明不能更改array指向的数据。
    ANSI C库遵循这种做法。如果⼀个指针仅⽤于给函数访问值,应
    将其声明为⼀个指向const限定类型的指针。如果要⽤指针更改主调函
    数中的数据,就不使⽤const关键字。例如,ANSI C中的strcat()原型如
    下:
    char *strcat(char * restrict s1, const char * restrict s2);
    回忆⼀下,strcat()函数在第1个字符串的末尾添加第2个字符串的
    副本。这更改了第1个字符串,但是未更改第1个字符串。上⾯的声明
    体现了这⼀点。

  • 相关阅读:
    最大回文子串
    找出不含重复字符的最长子串的长度
    链表表示的2个数相加
    如何胜任一个小型公司的技术总监?我的感想
    React 的坑
    MobX 学习
    摘要
    AI 帮助涂鸦
    计算机的前世今生
    常用编辑器实用技巧(pycharm、sublimeText、vim、vscode、Jupyter)
  • 原文地址:https://www.cnblogs.com/focus-z/p/14674183.html
Copyright © 2020-2023  润新知