[C语言]指针的详解与应用(理论)--江科大

声明:我是跟着B站江科大的视频的学习过程中记录下来作者的文案,记录下来是为了方便自己日后复习。如果你也是跟着江科大的视频学习的,可以一起学习。

我把其中一些白话进行了修改,并且添加了自己的一些理解。我只有一些pyhon基础,所以可能有错误,学起来也比较吃力,就把自己的一些理解加上去了,方便大家有和我一样没有基础的人进行学习,如果有不对的地方欢迎指正

在讲之前,先要知道像int、char、float这些是叫做变量类型。

int a;

char b;

这里的a和b是叫做变量。

指针讲解分为两个部分:详解应用

一、详解

指针Pointer,使用灵活、功能强大,是C语言的灵魂。

指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问。我们讨论指针就会讨论内存这些东西,因为指针就是一种地址,所以它必须要和内存实际存储的数据联系起来。

存储器有两个重要的点,一个是数据,另一个就是地址。所以如果把地址也操作起来的话,那我们就能更加灵活的去使用这些数据。

指针如何间接访问数据呢?我们平常定义一个变量,用变量的名字可以直接引用这个变量。

但是我们还有另外一种方式,就是间接访问。我们可以把这个变量的地址拿出来,通过指针去寻找这个地址下的变量,实现一个间接寻找的过程。

那我们为什么不直接使用变量名直接访问变量呢?这个间接访问可以起到很大的作用,具体的在后面结合例子进行分析。

上面讲了指针和内存是离不开的,所以在分析指针之前,先讲一下计算机是如何存储数据,内存是如何定义的。

我们通常会把内存分配成这样的一个线性区域,每个区域都是以字节为单位(内存以8位为一个单位,也就是一个字节),每个字节都会对应一个地址,如果字节不对应地址,那就访问不到了。所以为了访问这个数据,每个字节都会有它独一无二的地址

看上图,在计算机系统里,int代表了一个4字节的数据,也就是一个int类型的数据,要用32个二进制来表示。看右边,由于a要跨越4个字节的长度,所以一个int型变量就跨越了4个地址,把小端放在内存地址的低位,就是放在前面,这种分配方式叫做小端模式。还有一种把大端放在前面的叫做大端模式。但是现在计算机一般是小端分配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值