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是一个
{
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);
}
C语言指针与const
本文探讨了C语言中指针与const关键字的使用方法及其限制。通过几个示例展示了如何定义不同类型的指针,包括指向常量的指针、指针常量等,并讨论了这些指针在操作结构体成员时的行为差异。
1261

被折叠的 条评论
为什么被折叠?



