const关键字相关

const作用:

const在c中的作用和cpp中的略有不同。

在c中经过const修饰的变量并不是绝对的常量,例如

C

const int a = 0;    //定义了一个c语言中的常量

int *pa = &a;       //定义了一个普通指针指向常量a,这中间经过了强制类型转换

*pa = 2;            //a的值可以通过pa指针修改

printf("%d %d\n", a, *pa);

输出: 2 2

上面是在c中写下的代码,程序正常运行并且修改了a的值。同样的代码经过cpp编译会产生不同的结果:

Cpp

const int a  = 0;   //cpp 常量

//int *pa = &a;     //这样不能通过编译

int *pa = (int *)&a;    //这样可以通过编译

*pa = 2;

printf("%d %d\n", a, *pa);

输出:0 2

const修饰变量的几种情况:

const int a = 0;    //a 是常量,c和cpp中效果不同

const int *pa = &a; //const修饰*pa,*pa不可改变,也就是pa指向的内存空间的内容不能改变

int const *pa = &a;     //等价上一个

int * const pa = &a;    //const 修饰pa,pa不可改变,但*pa可以改变

cpp中的const:

cpp中利用const可以定义常对象和常方法:

C++中的常对象与常对象成员详解

const和#define比较:

const常量与define宏定义的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值