初学C语言

指针

讲数组离不开指针,什么是指针:首先指针叫指针变量,用来保存地址

理解指针:

每个数组元素都有自己的地址,元素就是地址保存的内容,地址可以保存,保存地址的变量就是指针。

当然像二维数组或二维数组以上地址中还有地址,运用指针取出更深层地址时要用2级以上指针

既然是变量就有类型,如何查看?

数组与指针的关系

数组的数组名就是整个数组的首地址=数组中第一个元素的地址(数值相同但定义不同)

对数组名进行偏移与数组中的元素偏移不同请看上图

区分指针数组与数组指针

指针数组存放的是地址,指针数组里存放的是元素

指针运用

特殊指针

void*型

可保存任意类型地址,但不能直接引用

如果要使用,需要运用强制转换

NULL型

Segmentation fault (core dumped) 段错误: 一般由用户访问了非法的内存所导致 

这是错误写法

正确写法:

 野指针

野指针就是指针中保存的是无效的内存地址(随机的,不正确的,没有限制的)。

野指针出现的情况

1.指针未初始化:

2.指针越界访问:

3.指针指向空间释放:

 如何规避野指针

1. 指针初始化, int* p = NULL;

2. 小心指针越界

3. 指针指向空间释放,及时置空

4. 指针使用之前检查有效性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值