c语言指针学习心得与分享(1)

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,BSP开发
作者主页:一个平凡而乐于分享的小比特的个人主页
文章收录专栏:C语言指针总结,C语言指针是C语言部分重难点,也是编程笔试和面试的重灾区,本专栏旨在总结C语言学习过程中的易错点,通过调试代码,分析原理,对指针有更清晰的理解
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

C语言从本科就开始学起,也考过计算机二级C语言。但总觉得指针这块没有学习通透。想通过写博客的方式,对知识点作进一步的梳理,也是一个很好与同行交流的机会。

1.指针+/-整数

指针的类型决定了指针向前或者向后走了一步有多大(距离)。

举个例子:

在c语言中,char类型占1个 字节,int类型占4个字节,pc是字符型指针,每次一动只移动一个字节。而pi是整型指针,每次一动移动4个字节。可以通过输出的地址值明显看出。

2.指针的解引用

指针的类型决定了对指针解引用的时候有多大的权限(能操作几个字节)。

举个例子:

由于pa是整型指针,解引用后能操作4个字节,图中可以看出指针指向的内存4个字节全为0。

由于pc是字符型指针,解引用后能操作1个字节,从图中可以看出只有一个字节为0。

补充:int*p;*p能够访问4个字节

char*p;*p能够访问1个字节

double*p;*p能够访问8个字节

3.野指针

3.1野指针成因

3.1.1指针未初始化

p指针所指向的地址是个随机值

3.1.2指针越界访问

3.1.3指针指向的空间释放

主函数中p指向test函数,在test函数中整型变量a为局部变量,当执行完test函数后变量a的地址返回给操作系统,因此p指针指向的空间释放,p为野指针。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值