指针的学习

内存是电脑上重要的存储器,计算机中所有程序运行时所需的数据都在内存中存储。所以为了有效的使用内 存,就把内存划分成一个个小的存储单元,每个存储单元的大小为1 个字节。
为了能够有效的访问到内存中的存储单元,就给每个存储单元进行了编号,这些编号称为存储单元的地址

指针:内存地址

获取a在内存中分配的空间地址,使用取地址符&

%p是地址的占位符

获取地址中的内容。解引用操作符*

指针变量:用来存放内存地址的变量

在同一 CPU 构架下,不同类型的指针变量所占 用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指 针以后,不仅可以对数据本身进行操作,也可以对存储数据的变量地址进行操作。
指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。
C/C++ 语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对 象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体
指针相对于一个内存单元来说,指的是单元的地址,该单元的内容里面存放的是数据。在 C 语言中,允许用 指针变量来存放指针,因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
不同类型的指针变量决定了对指针解引用时访问几个字节

全局变量系统会默认给初始值,局部变量不会

使用局部变量前必须进行初始化

野指针

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

野指针的成因

1,指针未进行初始化

2指针越界访问

3指针指向的空间释放

如何避免野指针

1.指针初始化

2小心指针越界

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

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

可以使用for循环访问数据中的元素

数组名:数组中首元素的地址,arr==&arr[0]

首元素的地址就是整个数组的地址

使用指针来访问对应空间的值

arr+i 理解为向下偏移i个元素,到达指定位置

指针+-整数;

加一个整数表示向下平移一个整数

减一个整数表示向上平移一个整数

如何获取数组中最后一个元素的地址

arr+size-1等价于&arr[size-1]

指针-指针;

指针-指针会得到两个指针中间元素的个数(求字符串的长度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值