const限定符的个人理解

1.定义 赋值.
const int buf = 512; // buf 的值 不能再改变
所以 buf 在定义时 必须被 初始化;其初始值也可以是 函数的调用 const int i=get(); 也可以用相同类型的对象 来初始化。
2.常量引用
const 的引用----常量引用 引用和 对象都为常量

const int c1 =1024
const int &b1=c1;//const引用只读不可修改
//与绑定对象是否为const无关。

如果是对一个常量进行引用,则编译器 首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作。用户不能访问它。

const int &ri = dval;
编译器将其转换为:
int tmp = dval; //double -> int
const int &ri = tmp;

const引用表示,试图通过此引用去(间接)改变其引用的对象的值时,编译器会报错!
不能通过常量引用改变所引用的对象的值,但可以直接改变对象的值。
3.内连接
在 C++ 中 const 默认为static const 为内连接 只在文件内有效
在 C中 const 默认为 extern const 为外连接 可以再其他文件中访问
4.指针

const int * pOne;  
  int a=0;
pOne=&a;
  // const 限制 int *   *是对指针的取值  则 所指向的值不可改。但可以改变指针内存储的地址的值,
  就是可以改变指针所指的对象,对象的值不能改。
 //指向整形常量 的指针,
它指向的值不能修改

int * const pTwo;  //const 右边为指针 指针内为对象地址 则对象地址不可改
  //指向整形的常量指针 ,
它不能在指向别的变量,
但指向(变量)的值可以修改。 

const int *const pThree; 
 //指向整形常量 的常量指针 
。它既不能再指向别的常量,指向的值也不能修改。

看const的右边是什么 则const 限制什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值