const 修饰指针
指针常量
const int *p = &a;
特点:指针的指向可以改变,但指针指向的值不可以改。
常量指针
int * const p = &a;
特点:指针的指向不可以改变,但指针指向的值不可以改。
既修饰指针,又修饰常量
const int * const p = &a;
特点:指针的指向和指针指向的值都不可以改变。
结构体做函数参数
值传递:修饰形参,实参不变
void printStudent1(struct student s)
{
cout<<s.name<<s.age<<s.score<<endl;
}
地址传递:改变值都变
void printStudent2(struct student* p)
{
cout<<p->name<<p->age<<p->score<<endl;
}
结构体中const使用场景
作用:防止数据不小心被修改
void printStudent(const student* s)
{
s->age=20;//Error
cout<<s->name<<s->age<<s->score<<endl;//输出原来的age
}