【发布时间】:2016-11-20 05:26:06
【问题描述】:
为什么 C 中的所有指针都具有相同的大小?我在 64 位架构上。
#include<stdio.h>
int main(){
printf("int\t%ld\n",sizeof(int*));
printf("char\t%ld\n",sizeof(char*));
printf("void\t%ld\n",sizeof(void*));
printf("float\t%ld\n",sizeof(float*));
}
OP :
int 8
char 8
void 8
float 8
【问题讨论】:
-
为什么它们的尺寸不一样?
-
它们不保证大小相同,但通常总是:stackoverflow.com/questions/1241205/…
-
假设其中一个具有较小的尺寸,这将对允许该类型的东西在内存中存在的位置设置很大的限制。
-
@harold:这在某些架构上很典型。 C 比 x86/ARM 还多。
-
@Olaf 这是一个结果,我没有说这不可能。不过这确实很不方便。