(0)c语言的梦魇:c指针
序
c语言中有一个重点:c指针。它也是一个难点。这是一句废话,重点往往也是难点。
c指针似乎很难理解,以至于有人指出:掌握了c指针,就掌握了c语言的精髓。本系列就来聊聊c指针,要想弄懂c指针。光就指针本身进行理解,还不够。
因为指针的本质就一句话:指针就是地址。这句话大多数学过c语言的人都明白,但对很多使用指针的场景任然是不知所措,就像梦魇一样。必须指出:指针之所以难理解,更多地在于c的语法。可以明确指出c的语法很多时候是不太自然的,混乱的。毕竟c语言是人设计的,有所缺陷或者说设计不佳,在所难免。
这并不是否定c语言的魅力和能力。相反,c语言的确是强大的,在底层的操作上也许仅次于汇编。但要想发挥出c语言的强大能力,前提是必须对语言本身有深刻的理解。从c语言的发展史看,c语言起源于B语言,接着演化为New B,简称NB,再就是今天的c语言。c语言就是一门介于NA和NC之间的语言!
本系列集中探讨以下问题:
- 指针和数组为何如此暧昧?
- c语言中变量的作用域、可见域
- 什么是静态函数?
- c语言中的复杂申明如何解析?
- 数组的数组是什么意思?
- const的使用
- typedef是用来干什么的?
- 结构体的使用
- ……
个人能力有限,预计本系列会很艰难。但能往前走一步,就绝不走半步。本系列以c指针为中心,加以c的语法解析。欢迎各路高手批评指正。
David
2014年7月23日
目录
(1)指针就是地址