leechung 最近的时间轴更新
leechung

leechung

V2EX 第 145973 号会员,加入于 2015-11-05 20:36:19 +08:00
leechung 最近回复了
2015-11-05 22:59:25 +08:00
回复了 ru20150601 创建的主题 程序员 学习 C 语言的问题,有个问题怎么想都想不通
一个 2 维的指针, int array [4] [2],教材中说, array 的值和 array[0]的值是一样的,是同一个地址值。这个我不能理解。* array 得到的是一个内存地址值 long int ,而* array[0]则是一个 int 。怎么可能会相同呢?
-------------------------------------------------------------------------------------------------------------

首先, C 中不存在 2 维指针。维度是针对数组而言的;
其次,“值”这个术语在 C 标准文档中有明确的含义,粗略地说,值是对象的内容。值得注意的是, C 标准文档不使用“变量”一词,而是使用“对象”,但这个对象和面向对象设计语言中的对象不是一回事。
再次,基于以上概念的界定,那么,因为标识符 array 指示一个数组类型的对象,所以,“ array 的值”实际上指的是数组对象 array 的值,也就是整个数组的内容;“ array[0]的值”指的是数组 array 的元素,也就是子对象 array[0]的内容。显然,它们的值是不一样的。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1164 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 18:37 · PVG 02:37 · LAX 11:37 · JFK 14:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.