c中指针的数据类型是什么?

use*_*636 11 c pointers

是整数或无符号数据类型的指针?

Ign*_*ams 24

不,它们是指针,其大小取决于系统,并且只有兼容类型void*.

  • 函数指针与`void*`不兼容. (9认同)
  • @ H2CO3:`intptr_t`和`uintptr_t`,在`<stdint.h>`中定义,是可选的.一个符合要求的实现没有足够大的整数类型转换的`void*`值而不会丢失信息将不会定义它们.(我知道没有这样的实现,但它们是可能的.) (3认同)
  • @NoufalIbrahim C99需要`intptr_t`和`uintptr_t` (2认同)
  • 除`void*`以外的指针类型与`void*`不兼容*.隐式转换的存在与类型兼容性不同,后者的定义相当狭窄. (2认同)

Joh*_*ode 8

指针是指针类型.如果您询问指针值如何在内存中表示,那实际上取决于平台.它们可以是简单的整数值(如在平面存储器模型中),或者它们可以是结构化值,例如页码和偏移(对于分段模型),或者它们可以是完全不同的东西.