C++之常变量指针与普通变量指针

总结:

1、常变量指针可以指向普通变量常变量,但是都不能改变所指向的变量的值
2、普通变量指针只能指向普通变量

3、函数形参与实参都为指针时,规则也一样

1)形参为普通变量指针,实参为常变量指针,则普通变量指针指向常变量,这样是不合法的。

2)形参为常变量指针,实参为普通变量指针,则常变量指针指向普通变量,合法,但不能修改普通变量值。

3)形参为常变量指针,实参为常变量指针,则常变量指针指向常变量,合法,但不能修改普通变量值。

class Student{
public :
	int age;
	int num;
	Student(int a,int b){
		age = a;
		num = b;
	}
};

void main(){
	//常变量只能由常指针指向
	int const ci = 1;
	int const *cip = &ci;
	//int *ip = &ci;	普通指针不能指向常变量

	//常变量指针指向普通变量,不可以改变普通变量值
	int const *ci2;
	int nci = 2;
	ci2 = &nci;
	//*ci2 = 3;	出错

	Student const *std1;	//定义指向对象的常指针变量,即常指针,使指针一直指向同一对象
	const Student *std3;	//定义指向常对象的指针变量,即指向的对象为常对象,不能通过指针改变对象值,但可以改变指针指向的值
	Student std2(1,2);
	Student std4(3,4);
	std1 = &std2;
	std3 = &std4;
	std3 = &std2;
	//std1->age = 20;	不合法,无法通过指针修改对象
	//std3->age = 10;	不合法,无法通过指针修改常对象
	std1->display();
}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值