const关键字

作者: 风情云 | 来源:发表于2020-03-24 21:45 被阅读0次

    const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。

    const修饰变量

    const float PI = 3.14;
    //产量不可修改
    PI = 12.0;  //error
    

    const修饰的变量不可修改,此为常量,如同一些常数不可修改。注意在定义时初始化,如果定义后再初始化将报错,且该常量为随机数。没有意义。
    这个相对于宏定义改进了一些地方,检查数据类型,检查表达式的语法,在效率上也提高,空间占用更少。

    const修饰数组

    const int ARRAY[10] = {0};
    

    这个注意事项与变量一样。

    const修饰指针

    const char *ptr1;
    char const *ptr2;
    char * const ptr3;
    const char * const ptr4;
    

    这个主要看const与那个运算符接近,就修饰那个运算符。第一个const接近,则修饰它,效果为该指针指向的数据不可修改,该指针变量可以修改。第二个和第一个一样,都是修饰,效果相同。第三个const修饰指针变量,则该指针变量不可修改,指针变量指向的数据可以修改。第四个,指向的数据和指针变量都被const修饰,两者均不可以修改。方法就是看const离那个运算符近,就修饰那个。

    const修饰形参

    char *strcpy( char *to, const char *from );
    

    字符串拷贝函数,我们只需拷贝内容,并不需要改变fron指针指向的内容。const修饰不需要改变的形参好处有二:一,如果函数内部破坏该数据,编译器将报错,保护数据。二,让调用者明显看到该形参不可改变,做出一些必要调准。

    C语言中const缺陷

    const float PI = 3.14;
    //PI = 3.0;  ERROR
    printf("DEFORE PI = %f\n",PI);
    float *ptr = Π
    *ptr = 3.0;
    printf("AFTER PI = %f\n",PI);
    

    结果

    DEFORE PI = 3.140000
    AFTER PI = 3.000000
    

    可以看到,在C语言中,const修饰的常量虽然不能直接修改,但可以间接修改。

    const一般使用

    const一般使用在常量和修饰形参居多,在修饰变量时,变量名一般起大写的名字,这样一看到就知道是常量,且在定义时记得初始化。


    微信号

    相关文章

      网友评论

        本文标题:const关键字

        本文链接:https://www.haomeiwen.com/subject/riaayhtx.html