地址和函数调用问题

本文探讨了C语言中函数调用时地址和指针的概念。强调了理解地址唯一性和指针的重要性,指出通过地址可以改变函数内部变量的值。详细解释了指针的指针如何工作,并讨论了值传递与地址传递的区别,特别是在函数调用中的影响。明确指出,当在被调函数中改变地址上的值,这个改变会直接影响主调函数,因为内存地址的唯一性。
摘要由CSDN通过智能技术生成

以前感觉对地址比较了解了,但是在学习了函数调用后,发现自己对有些概念是很模糊的。在学习函数调用,特别是在调用时用地址改变值的时候更是如此。如果对指针的概念没有明确的掌握,又加上调用的时候涉及到好几个知识点,是很难搞明白调用的过程以及函数调用时地址如何改变地址上的值。这里如果理解不好,对运用C语言解决问题有很大的阻碍。
所以首先要重复一下指针的知识,这个很重要,不能模棱两可,要有清晰的概念,否则再加其他知识解决问题,一下就糊了。数据是存在计算机的内存上的,内存是真实存在的,内存有标记,叫地址,找到地址就找到了内存,也就找到了数据,计算机处理数据基本上是处理地址。
在这里插入图片描述
下面通过上面的图来看看概念及关系,重要的事情说三遍,不但要搞清楚概念也要搞清楚关系,int a=5;int*p=&a;这个值是x,也就是说a是存于x上的,x是唯一的,x也等于指针变量p。
他们之间的关系是怎样的呢?首先要记住地址的唯一性,计算机中地址是x的内存是唯一的,用p可以对引用a的地址,可以对a进行任何操作。是怎么样操作的呢?p是a的地址,不是a,但是用去地址符,可以引用到a。要记住a的真实地址和地址值是一一对应的。
指针的指针又是什么呢?这个也需要理解并运用,可以定义一个指针的指针int**pp,这个pp中存着a的地址的地址,同样,通过pp可以对p(a的地址)进行任何操作)ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值