zoukankan      html  css  js  c++  java
  • const关键字在C语言中的作用总结

    1. 修饰变量

      C语言中采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。举例说明如下:

      const int i = 5;

      上面这个例子表明,变量i具有只读特性,不能够被更改;若想对i重新赋值,如i = 10;则是错误的。

      值得注意的是,定义变量的同时,必须初始化。定义形式也可以写成int const i=5,同样正确。

      此外,const修饰变量还起到了节约空间的目的,通常编译器并不给普通const只读变量分配空间,而是将它们保存到符号表中,无需读写内存操作,程序执行效率
      也会提高。

    2. 修饰数组

      C语言中const还可以修饰数组,举例如下:

      const int array[5] = {1,2,3,4,5};

      array[0] = array[0]+1; //错误

      数组元素与变量类似,具有只读属性,不能被更改;一旦更改,如程序将会报错。

    3. 修饰指针

      C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改。举例说明如下:

      int i = 5;

      int j = 6;

      int k = 7;

      const int * p1 = &i; //定义1

      int * const p2 =&j; //定义2

      上面定义了两个指针p1和p2。

      在定义1中const限定的是*p1,即其指向空间的值不可改变,若改变其指向空间的值如*p1=20,则程序会报错;但p1的值是可以改变的,对p1重新赋值如p1=&k是没有任何问题的。

      在定义2中const限定的是指针p2,若改变p2的值如p2=&k,程序将会报错;但*p2,即其所指向空间的值可以改变,如*p2=80是没有问题的,程序正常执行。

    4. 修饰函数参数

      const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。举例如下:

      void fun1(const int i)

      {

      其它语句

      ……

      i++; //对i的值进行了修改,程序报错

      其它语句

      }

      void fun2(const int *p)

      {

      其它语句

      ……

      (*p)++; //对p指向空间的值进行了修改,程序报错

      其它语句

      }



  • 相关阅读:
    [CSP-S模拟测试]:赛(贪心+三分)
    [CSP-S模拟测试]:联(小清新线段树)
    [CSP-S模拟测试]:z(模拟+map+小根堆)
    赛瓦维斯特定理
    [CSP-S模拟测试]:y(DP+bitset)
    [CSP-S模拟测试]:x(数学+并查集)
    [杂题]:staGame(博弈论+Trie树+DFS)
    [杂题]:group(状压DP+轮廓线)
    [CSP-S模拟测试]:w(树上DP)
    BZOJ4103 [Thu Summer Camp 2015]异或运算 【可持久化trie树】
  • 原文地址:https://www.cnblogs.com/baconZhang/p/13813845.html
Copyright © 2011-2022 走看看