对const的理解

对const的理解:
    const关键字用来做什么?
    const是C中类型修饰符,用来修饰数据类型。常见的数据类型修饰符有 short long unsigned signed static extern register volatile.
    类型描述符中如果有多个关键字,它们出现的位置不影响它对变量的限制。如const int a 与 int const int a完全一样,描述的都是一个const的整型变量。
对指针类型的理解:
    eg:    int * a[10];  //[]的优先级高于*, 因此是一个数组,每个成员类型为指针,指向int;
             int (*a)[10]; //因为()优先级高于[], 因此先看()里面的, 是一个指针,指向的类型是一个数组。
指针的判断从右向左。
    const int *a; //a是变量名, *表示它是一个指针(类型已经确认),余下的是指向的类型,因此,a是一个指向const int 的指针,即指向的数据不可改变。
    int* const a; // * const 一起来修饰a,即a只读,*表示a是一个指针,因此这是一个只读的指针,指向的类型为int型的变量。
    int const* const a; // *表示指针,因此指针不可修改, int const是指针指向的类型,仍然是const。

为什么用const?


typedef void* VP;
首先, typedef是定义一种数据类型。与define区分开,define只是替换。
typedef void* VP; //VP是类型名字,余下的是这个类型的真是类型(void*)。

const VP ptr;是否替换为const void *ptr??    No!!!, void * 是一个整体。
const VP ptr ---> VP const ptr ---> void* const ptr;   其中 const 修饰ptr。

const作用:
    (1)告诉程序猿此处莫修改。
    (2)有可能让编译器产生更精简紧凑的代码,减少BUG。
    (3)保护只读数据,避免不恰当操作导致的错误。
const使用:
    (1)定义常量,防止被修改。
    (2)函数参数中,不期望子函数修改调用函数的某些数据,可以加const限制。
    (3)在C++中,类的成员函数的使用。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值