资源描述:
《指针问题全解决》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、木文转载至网络指针对一部分初学者来说一直是一个无法逾越的障碍,没冇指针的c语言就好像没有左腿的短跑运动员。今天我来试试换一种方法来理解指针,希望能帮还在为指针挣扎的朋友们理清思路,高手略过即可。我们先认为内存是一家客栈(看起来这和老掉牙的人楼的比喻没什么区别,但是请你耐心看卜去)。同大部分的客栈一样,这家客栈冇天、地、人等各种档次的房间,用现在的话就是单人间、双人间、四人间等等。来住店的客人也是车水马龙,三教九流都有,我们看看都有哪些人:快乐单身汉char,还有char的小弟unsignedchar,他们只住单人间;shortint,unsignedshortint都是已婚无孩,他们只住二人间
2、;int,unsignedint,longint,unsignedlongint,这些都是四口之家,当然住四人间了;说起来这里面的前网位,int和unsignedchar,在dos时代还是二人世界,住二人间,后来出了32位系统后,他们才成为四口之家,等到了64位吋代,他们中冇人会变成8口之家。人口变化A快,所以人口问题就不讨论了,只要知道有几口人(几个字节)就住几人间就行了。另外还冇一些更庞大的家庭double,float我们就不一一赘述了。住客栈是要登记的,至少老板要知道哪个房间没人住,好租给新来的客人吧?于是就把每位客人的房间号都记在了纸上,然后把纸卷在了针上,大大节省了空间,这就是纸针(
3、指针J啦,八_八。为了安全,登记完的指针也放在客房里了,不过是没有人住的房间。为了区分不同身份的客人(本客栈不搞歧视,区分身份只是为了便丁•管理),客栈用颜色不同的纸来记录房间号,这就有了不同类型的指针,比如蓝色的char*这种指针只记录单人间的房间号,红色的int*JUd录四人间的。看起来分这么多种类很混乱,但是如果冇很多同类型的组团(数组)來住店时就方便了,上次inta[100]來旅游的时候,就找到那一沓100张红色的指针就可以知道谁住哪里了。比如团长a[0]的房间号记在第一张纸p上,那么翻开下一页(p++)你就找到了隔壁的房间号,你拿前四张去找人正好可以凑一桌麻将了。虽然指针分为很多颜色
4、(类型),但是不管多大的家族都只住一间屋子,只有一个房间号,所以无论什么颜色的指针都具冇相同的人小,长度就是房间号那么长。并非所有人都像inta[100]那么幸运,他们來的时候止好一层100个房间都没人住,于是他们可以住在同一片连续的区威。上次m,n,p,q,r一起来想住连续的儿个屋子,方便一起去玩,偏偏找不到合适的房间,只好m住3楼,n住5楼,...,总之都很远。可是m老是来问老板他的朋友们住哪里?老板每次要找半天,后來想了个办法,把记录这几个人的指针用一个盒子巾[5](指针数组)放在一起,这样就方便多了。冇的客人脾气很怪,比如charF[4],他们四个是一个乐队的,可是又不愿住四人间,非要
5、一人住一间,还一定是连着的,如果不连着就不住,老板没办法,给他们找了连着的四间房。可是大牌还真是难缠,他们早上出去工作就退房,晚上又要回來住,老板又要给他们找连续的四间房,天天如此,而11每次都浪费四个指针,客栈的成本一下提高了。老板又想了个办法,他专门为这些人订做了另一种颜色的指针(*p)[4](指向数组的指针),他用这个指针记录他们老大F[0]的房间号,剩下的三位房间号就是紧挨着的三间,减少了不少浪费。一直忘了介绍客栈的两个伙计,一个叫“小&',另一个叫”小杯,看外形就知道,”小叫匕较圆滑,肯定是经常可客人,而“小&”肚子比较大,一看就是常年打算盘,记帐不活动造成的。有时候有人来客栈找住店
6、的人,首先要查找客人的房间,“小&”就是负责去取保存房间号的指针的,比如上面提到的m想找「去逛街,“小&”就去找r的指针了(&r),“小&”找了半天,终于找到了r的指针p(p=&r),他把P交给”小性”小杯就拿着p去叫客人了(P就是r了)。看起来好像”小刊的工作比“小&'轻松,莫实”小★”也不容易,他要区分指针的颜色(类型)来决定叫多少个人,比如拿的是蓝色的指针(上面说得是char型),就只叫一个客人就可以,如果是红色的(int)就得叫4位客人,如果少叫了一位楼下找人得客人会生气得,因为没有把要找的人找全。好了,这家客栈介绍完了,为了感谢你看到这里,现在客栈经营权就交给你了,希望你财源广进!C
7、语言:指针入门[2009-5-2115:14:00
8、By:曹金华]6推荐一、指针基础知识入门1.内存地址与指针在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址