手机浏览器扫描二维码访问
就拿我们刚刚举那个例子来说,当我们在调用swap(a,b)的时候,实际上是把a的值3复制了一份给变量x,而不是a这个变量换了一个名字,变成了x。同理,变量b的值4复制了一份给y。而x和y跟a和b没有任何关系,所以在函数中无论我们对x和y做什么操作,都不会影响到a和b,所以对a和b进行值交换没有成功。」
「原来如此!那用指针为什么就能达到这个效果呢?」
我点了点头,然后抛出了自己的疑问。
「诶,我什么时候说了用指针可以实现这个功能?」
「虽然任叔叔你没有明说,但是你特地挖了一个坑让我和玥玥往里面跳,肯定是别有目的的。既然现在咱们正好在学习指针,再加上刚刚我和玥玥都对指针的强大表示怀疑,你自然是要想办法来说服我们呀!」
我还没有开口,小弦子倒是按捺不住了。
「你们两个……」
见自己的心思被我们看穿,老爹有些无语。
「好吧,那我先给你们演示用指针怎么来实现刚刚的功能:
swap(int*x,int*y)
{
inttemp=*x;
*x=*y;
*y=temp;
}
intmain(intargc,charconst*argv[])
{
inta=3;
intb=4;
swap(&a,&b);
}
这样的话,就能够实现交换a和b中的值了。」
虽然老爹一幅信誓旦旦的样子,但我和小弦子刚刚才折戟沉沙,自然会先验证一遍。一切果然如同老爹所言,a和b中的内容果然变了!那么why?how?
「好了,到这里我们正式进入正题,只有我们将指针的知识讲了,你们才会明白这其中的缘由。
刚刚我们说过,指针,其实就是指向一个变量的地址,这里的地址无非就是一个数字。通常的数据,如int、double这种,我们都是放在一个变量中,然后使用它们。同样的,如果我们使用这些地址,也得有相应的数据类型类存放,而用来存放地址的变量,就叫做指针变量。
就拿swap函数的参数列表来说,int*x其实就是声明了一个指向int类型的指针变量x。
什么意思呢?这其中其实包含了对内存的读写信息。
举个例子,假设你们班的教室编号是520,因为你们老师教学水平太高了,受到了广大学生和家长的认可,于是大家都想进入你们班学习。
于是你们班上的学生就越来越多,一个教室已经装不下了,这个时候校长说把521、522、523这三间教室跟你教室打通。
但是这四间教室只有520这个编码,如果这个时候有人问四年级二班在哪儿,我们就需要告诉人家,520编号的四间教室都是。
同样,因为不同的数据类型占用的内存字节不同,比如说变量a,它是一个int类型的,那么它在内存中占4个字节。但是我们获取它的指针地址时,获取到的实际上是它的首个字节的地址,因此我们在使用指针的时候就必须告诉计算机要取几个字节。
int*的意思就是一个指向int数据类型的指针,这样声明计算机就知道,原来使用这个指针地址读写数据的时候要按照int类型的标准来,也就是要从当前地址开始,操作四个字节的内存。
同样的,如果我们声明一个执行double类型的指针变量,就要用double*,以此类推。」
梦灾末世生存指南 我的蛮荒部落 迟宠 最强豪婿陆凡 衫生诡 夫人的病今天好了吗 王妃称心 四龙攒凤 嗣子荣华路 异界烽火录贰烽云再起 校园全能马甲女神 阴阳眼小师妹 戚风童话 龙婿陆凡 上门龙婿陆凡 韩娱之聚光 顾九辞霍明澈 大佬甜妻宠上天 青梅千千结 张钟颖
作者依旧的经典小说都市弃少归来最新章节全文阅读服务本站更新及时无弹窗广告小说昔日被人碾压的家族废物叶轩,化身仙尊强势归来。世人眼中至高的一切,在他眼里,却如同跳梁小丑,反手顷刻覆灭。星空万界,我为主宰。且看叶轩如何玩转花都,美女丛中过,片叶不沾身。...
...
一个是落魄的富家千金,一个是一生荣华的总裁大人,他们是青梅竹马,也是知心爱人,十年苍茫两分离,看总裁大人怎么捕获小甜心吧!...
传闻不学无术的池大小姐,在撞柱醒来后,忽然变得通情达理了。不但琴棋书画,样样皆精,而且诗书礼仪,处处出众。...
狂凤驭兽由作者冰伊可可创作全本作品该小说情节跌宕起伏扣人心弦是一本难得的情节与文笔俱佳的好书919言情小说免费提供狂凤驭兽全文无弹窗的纯文字在线阅读。...
作者公子米的经典小说帝国总裁,撩个宝最新章节全文阅读服务本站更新及时无弹窗广告小说第一次?有有经验男人低笑,眼神意味不明。薄倾大着胆子直接把醉酒的席靳衍睡了!没办法,自己缺钱,他就是钱!五年后,席少一言不合直接丢了个软萌包子过来。妈咪,为了我的千玺演唱会门票,人家只能把你卖啦!薄倾...