C语言函数的指针是什么鬼????? (二)

好了,这是继指针基础的第二篇文章。我们今天来聊一聊,为什么函数形参要用指针?

上节,我们知道计算机的内存原理后,那么,相对来说,学习指针就没那么吃力了。废话不多说,进入正题。

首先,我们知道变量,是用来存储数据的。不同类型的数据变量,存储的数据类型也不相同。那么,这与指针有半秒钱关系吗?别急,弄懂变量啥意思,那么半只脚就踏进了指针大门了。我们知道变量是存数据,并且可以多次赋值。好,那么什么叫指针变量?我们拆开来看,指针变量=指针+变量。类比一下,鸡肉面 = 鸡肉+面 牛肉面 = 牛肉+面 。那么请听题,鸡肉面,和牛肉面 是面还是饭? 仔细对比一下,指针变量也是变量呀!没毛病吧!只不过指针变量放的不是普通数据,而是我们的内存地址! 

首先我们知道一个前提,想要真正改变一个变量的值,就要拿到他的内存地址,才能改变变量的值。

 我们先理解一下上面三行代码的含义。

第一行,是定义了一个int类型的指针变量 P,“&”代表取地址符,“&a",代表获得a的内存地址。总体意思就是,定义了一个int 类型的指针变量 p(注意不是*P,“*”代表定义的是指针变量),变量存储的数据是a的内存地址!!!!

*p 又是啥  实在无法理解的话,记住,*p 就是 a !!!! 要先真正改变a的值,就要获得a的内存地址!!! 重点!!!! 

由于 变量可以多次赋值,p作为指针变量,也是可以多次赋值,不过要给他赋的是内存地址!!!

仔细观察下图,当把P变量赋值&b,也就是相当于p存放b的地址,*p 就成了b了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值