Почему все указатели в C имеют одинаковый размер? Я на 64-битной арке.Почему указатели имеют одинаковый размер в C
#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
Почему бы им не иметь такой же размер? –
Они не гарантированы одинакового размера, но обычно они всегда: http://stackoverflow.com/questions/1241205/are-all-data-pointers-the-same-size-in-one-platform-for-all- типы данных – SurvivalMachine
Предположим, что у одного из них был меньший размер, что поставило бы большой предел на то, где вещи такого типа могут существовать в памяти. – harold