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);


}


猜你喜欢

转载自blog.csdn.net/pingoole/article/details/79771888