C语言学习笔记-初始指针

本文详细介绍了C++中的指针概念,包括指针类型、野指针及其规避方法、指针运算以及指针与数组的关系。指针类型决定了解引用时访问的字节数,野指针可能导致程序不稳定,需通过初始化、边界检查等避免。指针运算涉及地址偏移和指针间的元素个数。指针与数组的关系中,数组名不等同于首元素地址,sizeof运算符用于获取数组大小。
摘要由CSDN通过智能技术生成

在计算机科学中,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
指针是个变量,存放内存单元的地址。(存放在指针中的值都被当成地址处理)
指针是用来存放地址的,地址是唯一表示的一块地址空间
指针的大小在32位平台是4个字节,在64位平台是8个字节。

1.1、指针和指针类型

指针类型决定了指针进行解引用操作的时候,能够访问空间的大小
int* p; p能够访问4个字节
char
p; p能够访问1个字节
double
p; p能够访问8个字节
指针类型决定了:指针走一步走多远(指针的步长)
int
p; p+1 --> 4
char* p; p+1 -->1
double* p; p+1 --> 8

1.2、野指针

概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)
1、指针未初始化:int* p; //随机指向内存中的一块地址
2、指针越界异常
3、指针指向的空间释放
如何规避野指针?
1、指针初始化
2、小心指针越界
3、指针指向空间释放,即使置NULL
4、指针使用之前检查有效性

1.3、指针运算

指针±整数:地址偏移
指针-指针:指针之间的元素个数
注:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。

1.4、指针和数组

&数组名-数组名不是首元素地址-数组名表示整个数组-&数组名 取出的是整个数组的地址
sizeof(arr),sizeof(数组名)-数组名表示的整个数组-sizeof(数组名)计算的是整个数组的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不叫小王叭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值