手机浏览器扫描二维码访问
「那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语言的精髓所在,并不是说它的用法有多么复杂,而是它可以和任意数据类型结合在一起,非常的灵活。
阴阳眼小师妹 最强豪婿陆凡 梦灾末世生存指南 张钟颖 龙婿陆凡 迟宠 衫生诡 青梅千千结 韩娱之聚光 大佬甜妻宠上天 王妃称心 顾九辞霍明澈 戚风童话 我的蛮荒部落 校园全能马甲女神 四龙攒凤 夫人的病今天好了吗 异界烽火录贰烽云再起 上门龙婿陆凡 嗣子荣华路
被亲妹妹算计,抢走家族荣誉还不算,连青梅竹马的未婚夫也被抢走!夏小汐发誓,要报仇!伙同男闺蜜制造复仇计划,咦?结婚证上这是谁?一不留神嫁给男闺蜜的舅舅墨夜霆!墨夜霆是谁?那个富可敌国权势滔天的男人!据说还是个GAY!管他呢,先虐了渣渣再说。可是,虐完渣以后呢?离婚该提上日程了,可他对她却日日宠,夜夜宠,化身宠妻狂魔。十天有八天起不来床的夏小汐,欲哭无泪,不是说他是GAY吗?GAY你大爷!...
没认识简时初之前,叶清瓷一直是个倒霉蛋,认识简时初之后,老天爷一本正经的告诉她,没有最倒霉,只有更倒霉!但是等嫁给简时初之后,叶青瓷就开始转运了。嗯,嫁人,结婚真好。...
昊苍大世界,圣尊楚逍遭红颜背叛,被仇敌围杀,一缕真灵重生下界。天才?妖孽?我武技神通信手拈来,千年记忆无所不知,秘法手段层出不穷。你以为我有一点强,其实我已经强到了无数点...
一个在山上学医学武的富二代,在得知父亲病重后,决定下山,夺回属于自己的一切,于是,一场都市狂澜开始卷起...
为了游戏里的皮肤,女友竟然背着我百星荣耀王者强势回归,手把手教你上王者!...
这是一个退役女大兵和娱乐圈流量小哥哥相互支持,相互救赎的爱情故事。蒋秀心与李铭渊的相遇就像是上天给他们开的一个巨大的玩笑两人几乎完全相反的性格,却因为一场醉酒被稀里糊涂的绑到一起一个是背景神秘的女保镖一个是几乎无法拥有自己隐私的当红流量明星一个是外冷内热的假小子一个是外热内冷的真傲娇这样的两个人走到一起,将会谱写出一章怎样的故事...