C ist mein Code:Warum undereferenced Zeiger haben diffrent sizeof als dereferenced - So, hier ++
cout << "The size of an integer is " << sizeof(int) << endl;
cout << "The size of a double is " << sizeof(double) << endl;
cout << "The size of a string is " << sizeof(string) << endl;
int num = 1234;
cout << "The size of a num is " << sizeof(num) << endl;
int *pnum = #
cout << "The size of a pointer pnum is " << sizeof(pnum) << endl;
cout << "The size of a value pointed at by pnum is " << sizeof(*pnum) << endl;
return 0;
Im dieses Stück Code verwirrt, weil Ausgabe dieser ist:
The size of an integer is 4
The size of a double is 8
The size of a string is 40
The size of a num is 4
The size of a pointer pnum is 8
The size of a value pointed at by pnum is 4
Ich denke, Größe ein Zeiger pnum sollte der gleiche Wert sein, auf den pnum zeigt, weil ich ein Tutorial "Programming C++" beobachte und in diesem Tutorial sind sie das gleiche. Kann jemand erklären, warum sie in meinem Programm nicht gleich sind?
Da die zugrunde liegende dataty Pes haben unterschiedliche Größen? –
Lass mich raten, du bist auf einem 64-Bit-System? Dann sind Zeiger normalerweise 64 Bits, während "int" immer noch 32 Bits ist. –
Im Tutorial ist es nur ein Zufall, dass 'int' die gleiche Größe wie' int * 'hat. Die Größen variieren von System zu System. – Galik