const用法 c++

const非指针变量需要在声明时初始化,const指针类型可以声明时不初始化

const int n;  //  错误
const int n = 4;   //正确
const char *n;   //正确      因为const修饰的是指针
char* const p;  //  错误     const修饰的是变量p     constant variable “p” requires an initializer

在函数中做形参

普通形参(非指针,非引用)前面加不加const对实参没有影响

 

非const指针只接受非const数据的地址

const指针接受const和非const数据的地址

 

非const引用只接受非const数据的地址

const引用接受const和非const数据的地址

 

将在函数中不希望被改变的传入参数形参声明为const,不影响实参类型(非const或const都行)

 

将指针参数声明为指向常量数据的指针有两个好处

可以避免由于无意间修改数据而导致的编程数据

使得函数可以处理const和非const实参,否则只能接受非const数据

const与指针在一起

char a[] = "jnh";
char* const p = a;
const char *n = a;

运行结果

由此可以看出

p是指针,里面存放的是变量的地址,p是常量,里面存放的地址不能变,但是他的指向是变量,可以变化

n是指针,里面存放的是变量的地址,n是变量,他可以变,但是她的指向是常量,不能变

有红色波浪线表示用法错误

给*p赋值,地址没变,地址里面的数据变了

给n赋值,相当于新的地址里面和放了原来的变量值

如何判断

将变量类型去掉之后,看const和变量之间有无指针或引用或其他关键字等

const p    说明修饰的是指针

const *n   说明修饰的是指针指向的那个变量

const和引用&

int a = 1;
int &b = a;
const int &c = a;  //等价于   int const &c = a;
a = 5; // 改变a 的值
b = 4; // 此时 a = b = 4;
c = 4; //出错, 不能通过const引用改变变量的值

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值