笔趣阁

手机浏览器扫描二维码访问

第四十八章 指针三(第1页)

「那swap里面的inttemp=*x和下面的操作是什么意思啊?」

「这里就涉及到了指针中最常用的两个运算符了:*和&。

取地址符&算是我们的老朋友了,它能够将一个变量藏在灵魂深处地址取出来。在我们最初使用scanf函数的时候,就用到了它,例如我们要从小黑屏上面输入一个数字,然后把这个数字赋值给a:

inta=0;

scanf(“%d“,&a);

现在我们学了指针了,其实这两句代码和下面的代码起到过效果完全一样:

inta=0;

int*p=&a;

scanf(“%d“,p);

在上面的代码中,咱们把a的地址取出来了,然后把这个地址赋值给了一个指向int类型的指针变量p,在scanf函数中,实际上就通过这个指针变量p给a进行了赋值。

至于*嘛,它可是&的好伙伴,&能够将一个变量的地址取出来,*可以从这个地址中获取变量的值,它们俩加起来可以说的狼狈为奸,无恶不作,没有哪个变量能够逃出它们的手掌心。

用另外一个方式说,这两货就是那种游戏中开挂的,能力强得一塌糊涂。

我们还是拿可怜的变量a来举例子:

inta=0;

int*p=&a;

*p=10;

这个时候*p就相当于a本身了,也就是说,我们可以通过*p来操作变量a所在那四个字节内存。我们对*p进行赋值,效果和对a赋值一样,而我们把*p赋值给一个变量,就和把a赋值给一个变量效果一样。例如:

intb=*p;

intb=a;

效果完全一样。」

「那这么看来指针的使用也不是那么难嘛,就这么两个运算符。」

从老爹目前的讲述来看,指针真的没有什么难的,无非就是通过利用指针地址给某个变量赋值,或者获取某个变量的值。只是让我想不明白的是,明明我们已经有了变量名,为什么还要设计指针这种东西?

等等,我似乎明白老爹那个swap函数的原理了。

「老爹,我好像明白那个用指针实现a、b两个变量内容交换的原理了。」

我脑中划过一道电光,整个人犹如醍醐灌顶,想明白了一切。

「哦,说说看!」

老爹饶有趣味地看着我。

「指针变量,指针变量,首先它是一个变量,那么指针变量在函数中传参的时候肯定也要遵守和普通变量一样的规则——值传递!

swap函数之所以能够实现交换两个交换,是因为指针变量传递的值不是普通的值,而是一个地址。

按照老爹你之前的说法,在调用函数时,将会把实际参数的值复制一份给形式参数,所以形式参数同样也拿到了要进行交换的那两个变量的地址,那么我们通过地址进行读写操作最后同样会作用在变量上!」

「啪……啪……啪……不错不错,居然一下子就明白这其中的原理所在!想当年我领悟到这一层的时候可是花了不少的时间!」

老爹一脸拍了十来下手掌,毫不吝惜他的赞扬之词。

就连旁边的小弦子也面露佩服之色,看来我总算是赢了小弦子一次了!

「不错,这就是指针存在的意义所在。而且指针之所以说它是c语言的精髓所在,并不是说它的用法有多么复杂,而是它可以和任意数据类型结合在一起,非常的灵活。

热门小说推荐
旧日主宰

旧日主宰

你使用了外挂,催眠术提升九百九十九级。你使用了外挂,融合了巨熊功巨鲸功等一百八十门古武,获得泰坦神功,觉醒泰坦巨力。这是一个枪炮古武改造人半兽人邪灵并存的时代。当新时代的枪炮敲响了旧时代的丧钟,唐文带着外挂降临了。我从旧日来,主宰新时代!老月已经完本法师奥义永恒武道长生种皆是精品,老月出品...

至尊妖孽兵王

至尊妖孽兵王

一代妖孽战医叶洛,受杀手之王临终托女隐居都市。本想安稳过日子的他,却不经意间被美女包围,娇俏护士,火爆女警,富家千金,冷傲总裁,当红女星…一个个闯进他的生活,搅乱了他的平静。叶洛叹息装逼泡妞我早已厌倦,只想做个平凡人,你们何必逼我呢?...

星际传奇

星际传奇

五千年的科技发展使人类文明繁荣兴盛,探索宇宙的愿望得以实现,星际时代来临。但是在未知的宇宙深处,等待人类的除了宇宙深层的奥秘外,还有数不尽的危险。这一次,人类不再是为探索而战,而是为了生存...

从王子到神豪

从王子到神豪

重生为土豪王子,第一件事做什么?先花它一个亿。性格慵懒的凌洲,重生为王子,本想快乐地享受奢侈生活的他,从第一次提取到一个‘未来片段’开始,从此一发不可收拾。从一名纨绔王子,一步步变成世界顶级神豪。书风格相对轻松一些。...

把她宠坏

把她宠坏

书海阁小说网免费提供作者木羯酱的经典小说把她宠坏最新章节全文阅读服务本站更新及时无弹窗广告欢迎光临wwwshgtw观看小说把她宠坏或把她宠坏,或把她哄乖)...

每日热搜小说推荐