在C语言中&与*的含义与联系

本文介绍了C语言中指针与地址的概念,通过示例解析了变量、指针变量以及取地址符(&)和解引用符(*)的使用。作者强调了内存和地址在C语言学习中的重要性,并指出指针用于访问和修改存储数据的内存空间。

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

在我学习线性表时发现,有时参数传参需要&符号,有时不需要,这让我有些糊涂,经过学习,我整理了一下,下面是我的理解

首先我们先编写一个示范案例

得到的输出结果

 

 

 观察运行结果我们发现 b 与 &a 的输出结果相同,a 与 *b 的输出结果相同

这是为什么呢?

这里我们通过以下图式理解

 

 在定义过程中我们定义了两个变量,分别是整型变量a与整形指针变量b(b中储存的地址指向的单元中的数据是整形数据)

我们知道变量本质上是一块储存单元,c编译器通过这个储存单元的地址来访问其中的数据

所以变量可以代表两个值:存储单元的地址 和 存储单元中保存的数据.

为了指明它俩,c语言中规定了用a表示保存的数据 &a表示储存单元的地址(&符号也叫做取地址符号)

这里我们看指针变量 b 在其中我们储存的数据是一串地址,(指针变量b本身也有自己的地址)

综上所述

int a=100;定义一个整形变量a,在其中存储数据100

int *b=&a;定义一个整形指针变量b,在其中存储变量a的地址

a表示的是a储存单元中存储的数据

b表示的是变量a的地址

&a表示的是变量a的地址

*b表示的是b中存储的地址指向的存储单元中的数据,

&b表示的是指针变量b自己的地址

总结

对于C语言的学习中,要时刻保持内存的概念,每个内存都有自己的地址,而c语言中用指针变量来存放地址,通过指针去寻找储存数据的内存空间,以此来做到数据的读取与修改.

上述内容若有不妥,请大佬赐教.
————————————————
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

好学的小冷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值