适合女生看的编程日记--指针篇
女生真的不适合做程序员吗?不适合也得做:)脑瓜子里搜索了几个初级问题,放上来有用就看,没用就过。(男士可以飘过...)欢迎斧正。

(1) 指针真的等于某个地址了吗?如果它等于某个系统自动分配地址的变量的地址,也算有了名分,否则就要特别为这个指针分配一块内存。这个地址就是指针的值,地址里存放的数据,是指针指向的值。
(2) 16位(位=bit,下同)的机器,指针便是16位的,因为指针就是内存中的某一个地址。同理,32位的机器,指针便是32位的。
(3) 32位的指针中,可以存放8位的数据(迷糊了很久)。32位的指针,标识着某一处内存,存放8位数据的内存,就是一个字节的长度了。
(4) 所以,指针的类型要和指针指向的变量的类型一致哦。画个图好好想想,指针加1,指针所在的内存要往上数几才能取到正确的值?
(5) 函数的返回值由return带回给主调函数。如果是有多个返回值,必须用指针哦(C语言不支持形参修改实参的值)。将某个变量的地址(即指针)作为被调函数的输入,在被调函数里面,将地址里面的值改变,然后主调函数去该地址里面取值,才算正确取到被调函数的返回值哦。(C语言的书中明明白白地说了,可是不被逼硬着头皮看书,是不会看见也不会看懂的)
(6) 字符串的末尾,要多分配一个字节存放结束标志哈。告诉系统取多久数据算结束(著名的缓冲区溢出就是写一串没有结尾的字符数据,让系统不停地取,可能就改写了它本来不应该改写的地址中的数据)。
(7) 分配的空间要释放,以免占用系统内存,但是释放前,要确认不会再用到这块内存中的数据。写一个分配的函数,紧接着就写上释放的函数,怕后面忘了哈。
(8) 如果声明一个变量为结构体变量,而不是指向结构体变量的指针,那么系统就会自动为结构体变量分配空间了,否则还得你自己去为指向结构体变量的指针分配空间。指针啊,是指针就得让人家等于某一个地址,指向这个地址里面的数据。
(9) 定义指针等于NULL,一直以为系统会自动分配一块为0的空间呢,呵呵。原来是只是告诉系统有这个变量,但是目前不需要给它分配空间,等用的时候再分配空间。顺便,分配了空间,一般紧接着会给这块空间清一下零。
(10) 在内存的眼里,指针跟数组很像。数组里面的元素,不就是指针指向的数据吗?对内存而言,它们都意味着一长条。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/1157.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
