【发布时间】:2019-01-11 05:40:39
【问题描述】:
为什么只有指针变量可以保存其他变量的地址?如果我们将任何变量的地址存储在简单变量中,那么它将该地址存储为值。指针变量设计了什么样的数据结构?
【问题讨论】:
-
只有指针是专门设计用来保存另一个变量的地址的。通常,有一个整数类型(及其无符号对应物)可以保存一个对象地址——这些类型是
intptr_t和uintptr_t。你的第二句话不是很清楚。并非所有简单变量都可以保存地址值。很多时候,结果会截断部分地址。 (此外,函数指针的大小不必与对象指针的大小相同。)。没有特定的数据结构是“指针变量的设计”。 -
可能重复[指针变量的数据类型是什么?] (stackoverflow.com/questions/26976496/…)
-
指针可以指向任意但已定义的 C 类型(通常是一些
struct) -
在第二句中,我想说的是,当我们在其他变量(不是指针变量)中分配变量的地址时,即 int var1=10, var2; var2=&var1;。它将保存地址,但作为值,如果地址很大(超出范围),它将截断另一部分。
标签: c pointers data-structures