C++的const增强

struct student
{
int id;
char name[64];
};
void change_stu(struct student *s)
{
s->id = 10;
}
void change_stu2(const struct student *s) 
{     //指向常结构体的指针     指针常量
//s->id = 10;此时s所指向的区域是一个常量  不能够被修改
//但是内存空间可以被修改
struct student s2;
s = &s2;
}


void change_stu3(struct student *const s)
{
s->id = 10;
struct student s2;
//s = &s2; //s是一个常量指针 s的内存空间不能被修改
}


void change_stu4(const struct student *const s)
{
//s->id = 10;   都不能被修改
//struct student s2;
//s = &s2;//   s是一个

}

void test6() {
const int a = 10;//c++的const确实对a起了保护作用 不能通过指针间接赋值概念a的值


int *p = (int*)&a;//当c++ 编译器 发现对一个const的常量符号取地址
*p = 20; //c语言中可以通过指针间接赋值改变const 变量
      //*p是改变的临时的变量 而不是 常量a
printf("a = %d\n", a);


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值