用const修饰指针变量时的三种用法

/*用const修饰指针变量的三种效果*/
/*const int *p=&a  表示*P里面储存的内容不可以改变  不能使p修改a中的内容,
当可以使用其他的指向修改a中的内容 p的指向可以改变,但是其指向的内容是不可以
改变的*/
#include<stdio.h>
int main(void)
{
	int a=3;
	const int *p=&a;//等价于int const *p=&a
	printf("*p=%d\n",*p);
	//1.指向的内容不可以改变
	a=10;
	printf("a=%d\n",a);
	//*p=12; 此写法错误 p所指向的内存单元里的内容不可以改变 
	printf("*p=%d\n",*p);
	//2.p的指向可以发生改变,但是其所指向的内存单元里面的内容依然不能改变
	int b=4;
	p=&b;
	printf("*p=%d\n",*p);
	//3.其他指向a的指针也可以修改a的值
	 
	int *m=&a;
	printf("*m=%d\n",*m);
	*m=13;
	printf("修改后的值:\n");
	printf("*m=%d\n",*m);
	printf("a=%d\n",a);
	
	 
	return 0; 
	
 }

此之文件为.cpp文件
运行结果:如下图所示
在这里插入图片描述

/*int *const p=&a
p的指向不可以发生改变,内存单元的内容是可变的*/
#include<stdio.h>
int main(void)
{
	int i=3,j=4;
	int * const p=&i;//p的指向不可以发生改变
	printf("*p=%d\n",*p);
	//改变i的内容的值
	*p=10;
	printf("*p=%d\n",*p);
	//改变p的指向
//	p=&j;//p指向j
//	printf("*p=%d\n",*p);
	return 0;
	 
	
 } 

运行结果如下图所示:在这里插入图片描述
第三种:const int * const p=&a;
那么此时p中所指向内存单元中的内容和内存单元的地址都不可以发生改变

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值