Const关键字

有时在用const、static、extern关键字和宏定义的时候总是容易用混了,在这里就先总结了一下const的用法:

1.const的定义:const修饰一个变量,使其不可改变,产生静态作用。

2.目的:最初const就是为了取代预编译指令,消除它的缺点,并且继承它的优点。

3.作用:1)可以定义const常量,使其具有不可变性。

2)便于类型检查。

3)避免意义模糊的数字出现,便于参数的调整和修改。

4)保护修饰的变量,防止意外的修改。

5)可以节省空间,避免不必要的内存分配。

6)提高效率。

4.基本形式:const    type    变量名;    //const修饰的是变量名

5.注意事项:例1:typedef    char*    Pstr;

   char    string[4] = "abc";

            const    char*    p1 = string;  //const修饰的是*p1,所以*p1是不可变的

   const    Pstr    p2 = string;  //const修饰的是p2,所以p2是不可变的

   p1++;  //语句正确

 p2++; //编译器报错,因为p2已经是不可变的了

例2:const    int    n = 10;  //const修饰的是n,所以n是不可变的

  int    arr[n];  //编译器会报错,因为C语言中定义数组时长度必须是常量,而即使用const修饰过的变量变成了不可变的,但它终究还是变量

例3:const    int    nvalue;  //const修饰的是nvalue

          const    int     *nvalue;  //const修饰的是*nvalue

  const    int*    const    nvalue;  //第一个const修饰的是*nvalue,第二个const修饰的是nvalue

例4:int    const    nvalue;  //const修饰的是nvalue

  int    const    *nvalue;  //const修饰的是*nvalue

  int*    const    nvalue;  //const修饰的是nvalue

 int    const*    const   nvalue;  //第一个const修饰的是*nvalue,第二个const修饰的是nvalue

例5:int    const*    p1,p2;  //const修饰的是*p1和p2

          int    const*    const    p1,p2;  //const修饰的是p1,p2和*p1

    int    *const    p1,p2;  //const修饰的是p1,因为*const    p1是一个整体,这里的const不修饰p2

例6:int    const     *p1;  //这是一个常量指针,常量指针在定义时可以不赋初值

  int    *    const   p1;  //这是一个指针常量,指针常量在定义时必须赋储值,所以这段语句是非法的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值