0

今天一个学生来找我,问我,先生,我们有,int和C 中的所有数据类型。floatchar

当我们写的时候int i,这意味着i是 anvariable of type integer等等 for float fand char c

同样我们有int *i手段i is a pointer to an integerfloat *f和相同char *c

我们void* v;在 C 中也有。

void 指针也称为泛型指针。

他问我,因为我们可以拥有 void 指针,同样为什么我们不能拥有void v(作为数据类型)?

我简直无语了。所以,我请求请帮助我。怎么让他明白。

4

1 回答 1

2

这是我将如何解释它:

在高级语言中,变量表示抽象的事物,由语言决定如何实际以位表示它们并推动位以作用于这些事物。允许变量表示“无”的概念是有意义的。

C不是这样的。C 变量是存储在内存中的实际位集合。它们代表什么取决于程序员。对于 C 程序来说,拥有一个“无”类型的变量是没有意义的——这意味着“不分配内存位”,而且它不知道如何处理它。在 C 中,“int”表示“分配 32 位内存”,“int *”表示“分配足以容纳内存地址的内存,并且当我取消引用它时,一次获取 32 位”。“Void *”的意思是“为内存地址分配内存,稍后我会告诉你要从那里获取多少位”。

C 中的“void”函数返回类型意味着“从函数返回,但不将任何位传递给调用者”。例如,在 Python 这样的高级语言中,“return None”意味着返回给调用者,并传递给它一些代表“nothing”抽象概念的位集合”,这是另一回事。

于 2013-05-02T13:51:26.627 回答