指针的应用

本文详细介绍了C++中const关键字修饰指针的各种情况,包括指针常量、常量指针以及两者都修饰的情况。分别阐述了它们的特点及应用场景,并通过实例说明了如何防止结构体数据在函数调用中被意外修改。同时,讨论了结构体作为函数参数时值传递和地址传递的区别。
摘要由CSDN通过智能技术生成

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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值