如果不是内存地址,究竟什么是C指针?

在关于C的信誉良好的来源中,在讨论&运营商之后给出以下信息:


...有点不幸的是,术语[地址]仍然存在,因为它混淆了那些不知道地址是什么的人,并误导那些做的人:把指针当作地址通常会导致悲伤...... 。


我读过的其他材料(来自同等声誉的来源,我会说)总是毫不掩饰地将指针和&操作符称为给出内存地址。我很想继续寻找事情的实际情况,但是当信誉良好的消息来源不同意时,这很难。


现在我有点困惑 - 究竟什么是指针,那么,如果不是内存地址?


PS


作者后来说:......我将继续使用“地址”一词,因为发明一个不同的 [术语] 会更糟。


一只甜甜圈
浏览 448回答 3
3回答

慕娘9325324

C标准没有定义指针在内部的内容以及它在内部的工作方式。这是故意的,以便不限制平台的数量,其中C可以实现为编译或解释语言。指针值可以是某种ID或句柄,也可以是多个ID的组合(对x86段和偏移有问题),不一定是实际的内存地址。此ID可以是任何内容,甚至是固定大小的文本字符串。非地址表示对于C解释器可能特别有用
打开App,查看更多内容
随时随地看视频慕课网APP