【C语言】地址与指针|变量与指针 

举报
謓泽 发表于 2023/09/28 19:04:01 2023/09/28
【摘要】 【C语言】地址与指针|变量与指针 

🗡 地址与指针 

概述:在计算机中,所有的数据都是存放存储器内存当中。一般把存储器中的一个字节称为一个 内存 占用的内存单元数不等,如整型量占 4 个单元,字符量占 1 个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确的找到该内存单元,内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元可以用一个通俗的例子来说明 它们之间的 到银行去存取款时, 银行工作人员将根据我们的帐号去找我们的存款单, 取款的金额。在这里,帐号就是存单的指针, 存款数 是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元 的内容。 语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针 🤩

Ⅰ地址就是内存区中对每个字节的编号

Ⅱ指针看作是内存中的一个地址,多数情况下,这个地址是内存中另一个变量的位置

在程序中定义一个变量,在进行编译的时候就会给改变了在内存当中分配一个地址,通过访问这个地址可以找到所需的变量,这个变量的地址称之为该变量的 "指针"

🍊指针就是用来存储内存变量的当中的地址!①个内存单元 == ①字节 

🍊地址就是用来通过内存区的编号找到变量,然后再把自己内存区的编号赋值给指针。

从上述的话就可以看出来,为什么也会说其实指针无非就是地址,地址无非就是指针了。


🗡 变量与指针 

变量的地址是 变量 指针 二者之间纽带,如果一个变量包含了另一个变量的地址,则可以理解成第一个变量指向第二个变量。所谓 "指向" 就是通过地址来进行实现的。 因为指针变量是指向一个变量的地址,所以将一个变量的地址值 赋值给这个指针就 "指向" 了该变量 😜

例如:将变量 i 的地址值赋值给指针变量 p 中,p 就指向 i,其关系如下所示↓

在程序代码中是通过 变量名 内存 单元进行存取操作的,但是代码经过编译后已经将变量名转换为该变量在内存中存放的地址,对变量值的存取都是通过地址进行的。如下代码所示

a+b

其含义是:根据变量名与地址的对应关系,找到变量 a 的地址。假设 1000,找到变量 i 的地址 1000,然后从 1000 开始读取 4 个字节(整形类型)存放在 CPU 的寄存器当中,再找到变量 j 的地址 1004 ,从 1004 开始读取 4 个字节数据存放在 CPU 另一个寄存器当中,通过 CPU 的加减法从中计算出来🙄

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。