【知其所以然】语义\"陷阱\"---数组和指针
数组和指针经常出现于编程语言中、也许上课的时候老师也说过数组和指针有区别、参考书上也应该讲过,你是不是也不曾透彻的理清过? 这篇博文主要从内存和编译的角度指出了数组和指针在访问方式上的区别 、至于他们在函数调用的区别、以及它们的联系将在下一篇中详细讨论。 为了说的清楚些、会先说一些基础的部分、如果你已经掌握大可跳过 What's a Declaration? What's a Definition? 声明和定义 c语言的对象必须有且只有一个定义,但可以有多个声明(extern)这里说的对象和面向对象中的对象没有关系。 A definition is the special kind of declaration that creates an object; a declaration indicates a name that allows you to refer to an object created here or elsewhere。 定义是一种特殊的声明、它创建了一个对象;声明简单的说明了在其他地方创建的对象的名字,它允许你使用这个名字。 可以简单的这样理解: 声明 Declaration :描述在其他地方创建的对象,并不分配内存。(可以出现在多个地方) 定义 Definition :产生一个新的对象,并分配内存。(只能出现一次) How Arrays and