const在指针中的用法及*在定义指针及以后代码中使用的不同含义

c语言能力有限,第一次写博客,如有错误之处还望海涵,并恳请能指出错误与不足,谢谢!

1、对指针的一个简单解释

/*对于不了解指针的小伙伴,对指针做一个简单解释
指针其实就是指向内存中的一块地址,
例如int *p=&a;就是指针p指向变量a所在的地址,定义指针时用
int*p这样的格式,而以后代码再次使用指针时用p=&a;以后的代码
中*p代表取指针p所指向的地址单元中的数据。*/
#include<stdio.h>
int main(void)
{
	int a = 12;
	int b = 13;
	int* p = &a;
	printf("%d\n", *p);	//结果为12
	p = &b;
	//*p=&b;	//报错,因为=左侧为int*类型,右侧为int类型,不匹配
	//p = a;	//报错,因为=左侧为int*类型,右侧为int类型,不匹配
	printf("%d\n", *p);	//结果为13
	printf("%p\n", p);	/*结果为000000D565B5F954,
	这是指针p所指向的变量a的地址,不同电脑可能运行结果不同,
	同一电脑两次运行结果可能也不同,因为地址是随机分配的,%p是传递一个指针值*/

}

2、const在指针中的用法

#include<stdio.h>
int main(void)
{
	int a = 12;
	int b = 13;
//第一种
	//const int* p = &a;	
	//或者int const*p=&a;		
	//指向常量的指针,指针的地址可以改,但不能对指针内的数据进行改动,
	//因为这时* p  是一个常量或者说是只读,但	指针p	可以改动
	//可以在后面这么写,(1)	p = &b;	(2)	a = 13;	(3)p++;这三种是合法的	不合法的一种为(1)*p=13;
//第二种
	//int* const p = &a;		
	//常量指针,指针p为常量(只读),此时指针p为常量,所指向的地址不能改动,但指针所指地址数据可以改动
	//可以在后面这样写,(1)a=13;	(2)*p=13;这两种都是合法的   不合法的两种为(1)p = &b;	(2)p++;
//第三种
	const int* const p= &a;		//指向常量的常指针,并且要初始化,用变量初始化,*p   指针p都是只读的,不可改动
	//可以在后面这样写,(1)a=13;这种是合法的,不合法的三种为(1)p = &b;	(2)*p = 13;	(3)p++;
	//a = 13;
	//p = &b;
	//*p = 13;				
	//p++;
	printf("%d\n", *p);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值