初识指针(1)

本文详细介绍了C语言中的指针概念,包括其在不同架构下的存储大小、不同类型指针的操作特性,以及野指针的产生原因和避免方法。同时涵盖了二级指针和指针数组的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.指针就是变量,存放地址的变量。

2.指针在32位机器上是4个字节,在64位机器上是8个字节。3.指针类型在指针进行解引用的时候,能决定指针访问的空间大小。也决定了步长。

int*p: *p能访问4个字节;p+1 跳过4个字节

char*p: *p能访问1个字节;p+1 跳过1个字节

double*p *p能访问8个字节。p+1跳过8个字节。

4.野指针:1——指针未初始化,会产生一个随机值,随机找个地址进行插入,可能造成系统死机。

2——指针超出访问,指针访问越界。

3——指针指向的空间释放,当你保存在动态存储区时,在访问结束后,此内存已经还给了系统,传给指针后,这个地址已经不能使用。

5.如何规避野指针:

1.指针初始化。

2.小心指针越界。

3.当指针指向有意义的数据时,就将指针置空(NULL)让这个指针中的数据无法被改写。

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

6.在同一块空间中指针减去指针,得到的是中间元素的个数。

小地址减大地址为 -(中间元素的个数)。

7.c语言标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。

8.二级指针:将一个变量的地址存在一个指针中,依次套娃,可形成三级、四级指针。

9.指针数组: int* arr[ ] = {&a,&b&c};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值