const修饰指针

const修饰指针

本文中的const是指在修饰指针的情况下使用

  const修饰变量时,该变量是一个常变量,不能够被修改,但本质上还是一个变量。

	const int num = 10;
	/*num = 20;*/
	int* p = #
	*p = 20;
	printf("%d\n", num);    //输出20
	
	//const修饰变量时,虽然不能直接修改,但我们通过指针修改了num值,但num本质上不应该被改变,就像不能够从正门进房间,但是通过翻窗户进房间也是不可以的。

	const int num = 10;
	/*num = 20;*/
	 int const * p = #
	*p = 20;
	printf("%d\n", num);

//const放在*左边时候,修饰的是*p,表示指针指向的内容,是不能够通过指针来改变的,但是可以改变指针变量本身的值。

在这里插入图片描述

	const int num = 10;
	/*num = 20;*/
	int* const p = #
	*p = 20;
	int n = 100;
	p = &n;
	
//const放在*右边时,修饰的是p,表示指针变量不能够被修改,但 *p(指针变量指向的内容)能够被修改。

在这里插入图片描述

下面是一个例子,能够方便理解const修饰指针
在这里插入图片描述
如上图p已经指向了m,说明女孩和男孩1是男女朋友关系,女孩对男孩说想去吃东西,男孩1有10块钱,女孩使用男孩1的钱包,这时钱就会花出去,*p=0
 但是男孩1不想花钱,会在 int*p加上const,变为 const int * p,女孩就不能够使用 *p买东西,但是她可以改变指向,女孩就跟男孩2好上了,p=&n.
 如果男孩1想要花钱给女孩,但不允许她换其他男朋友,这时候 int * const p,p就不能改变,但是==*p== 是可以改变的,女孩可以花男孩1的钱。
 假如男孩1加了两个const,女孩就什么也改变不了了。 const int * const p.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值