※ 引述《ckkpolice (诸罗城坎)》之铭言:
: 写程式的风气好像越来越盛行
: 某些感觉用不到程式语言的科系
: 经了解后还是会加减学一点
: 有的则被系上硬性规定成必修
: 近来看了几篇网络文章也把写程式拱成未来的全民运动
: 难道趋势渐渐转变为写程式的风气吗
: 洨鲁我只能写写Hello World娱乐自己,其余一窍不通QQ
: 程式学不起来的人,未来将会被世道淘汰掉??
: 有没有全民语言─程式语言的八卦
各位小妹、pavone、30cm、E cup、温拿、高富帅、胜利组、真强者,
大家好!打给后!胎嘎侯!AV8D!
本鲁的朋友告诉本鲁,C语言里面有所谓的pointer,其实pointer存的就是内存的位
址,你可以用各种方式操作一个pointer,比方说取出pointer所存的位址的资料(比方
说如果pointer存个1000,那你可以取得内存位址1000处所存的整数)。如果你有一个
pointer叫做ptr,那么只要写ptr++,就可以让ptr自动指到下一笔资料,例如今天ptr
若被宣告成整数的pointer,也就是它所储存的位址放的东西是一个整数,又若一个整数
占据4个bytes,那"ptr++"这个动作的结果就是使ptr存的值变成1004(假设本来是1000)
,也就是下一个整数的位址。
又有所谓的generic pointer,也就是不限定型态的pointer,它存的可以是一个整数的
位址、一个字符的位址等,通通都可以。跟作业系统要内存的system calls(中文翻
成系统呼叫)如malloc、calloc等,都是传回generic pointer。
以上都没有八卦,八卦是pointers虽然强大,但也是很多错误的来源,所以有许多教程
式设计的老师们会教学生“尽量不要用pointer,除非用了相当有好处”。举例来说,
如果我要造一棵树,其中除了最底下的节点外,每个节点都有两个孩子,也就是我要的
树长这样:
a
/ \
b c
/\ /\
d e f g
这种树就可以用pointers来形成,其中节点a含有两个pointers,分别指向节点b和节点c
(也就是该两pointers储存节点b和节点c在内存当中的位址),节点b则含有两个
pointers,分别指向节点d和节点e... 这样的一棵树其实用所谓的array来表示更方便,
也就是节点a、b、c、d、e、f和g在array中的index分别为0、1、2、3、4、5和6,这样
就可看出来,在array中index为i的点的上一代就是index为(i-1)/2(无条件舍去小数)
的点,其实很方便der。
客怒使(Knuth)表示程式设计是一种艺术:
http://www.paulgraham.com/knuth.html
以上都是本鲁的朋友提供,本鲁看不懂,只是要赚P币而已。