Wie Sie die Größe des Arrays in C erhalten
Dieses Tutorial führt ein, wie man die Länge eines Arrays in C bestimmt. Der sizeof()
Operator wird verwendet, um die Größe/Länge eines Arrays zu ermitteln.
sizeof()
Operator zum Bestimmen der Größe eines Arrays in C
Der sizeof()
-Operator ist ein unärer Operator zur Kompilierzeit. Er wird verwendet, um die Größe seines Operanden zu berechnen. Er gibt die Größe einer Variablen zurück. Der sizeof()
-Operator gibt die Größe in der Einheit Byte an.
Der sizeof()
-Operator wird für jeden Datentyp verwendet, wie z. B. Primitive wie int
, float
, char
, und auch nicht-primitive Datentypen als array
, struct
. Er gibt den diesem Datentyp zugewiesenen Speicher zurück.
The output may be different on different machines like a 32-bit system can show different output and a 64-bit system can show different of the same data types.
Syntax von sizeof()
:
sizeof(operand)
- Der
operand
ist ein Datentyp oder ein beliebiger Operand.
sizeof()
Operator für primitive Datentypen in C
Dieses Programm verwendet ein int
, float
als primitiven Datentyp.
#include <stdio.h>
int main(void) {
printf("Size of char data type: %u\n", sizeof(char));
printf("Size of int data type: %u\n", sizeof(int));
printf("Size of float data type: %u\n", sizeof(float));
printf("Size of double data type: %u\n", sizeof(double));
return 0;
}
Ausgabe:
Size of char data type: 1
Size of int data type: 4
Size of float data type: 4
Size of double data type: 8
Länge des Arrays in C ermitteln
Wenn wir die Gesamtgröße des Arrays durch die Größe des Array-Elements dividieren, erhalten wir die Anzahl der Elemente im Array. Das Programm ist wie unten dargestellt:
#include <stdio.h>
int main(void) {
int number[16];
size_t n = sizeof(number) / sizeof(number[0]);
printf("Total elements the array can hold is: %d\n", n);
return 0;
}
Ausgabe:
Total elements the array can hold is: 16
Wenn ein Array als Parameter an die Funktion übergeben wird, wird es wie ein Zeiger behandelt. Der sizeof()
-Operator gibt die Zeigergröße statt der Array-Größe zurück. Innerhalb von Funktionen wird diese Methode also nicht funktionieren. Übergeben Sie stattdessen einen zusätzlichen Parameter size_t size
, um die Anzahl der Elemente im Array anzugeben.
#include <stdio.h>
#include <stdlib.h>
void printSizeOfIntArray(int intArray[]);
void printLengthIntArray(int intArray[]);
int main(int argc, char* argv[]) {
int integerArray[] = {0, 1, 2, 3, 4, 5, 6};
printf("sizeof of the array is: %d\n", (int)sizeof(integerArray));
printSizeOfIntArray(integerArray);
printf("Length of the array is: %d\n",
(int)(sizeof(integerArray) / sizeof(integerArray[0])));
printLengthIntArray(integerArray);
}
void printSizeOfIntArray(int intArray[]) {
printf("sizeof of the parameter is: %d\n", (int)sizeof(intArray));
}
void printLengthIntArray(int intArray[]) {
printf("Length of the parameter is: %d\n",
(int)(sizeof(intArray) / sizeof(intArray[0])));
}
Ausgabe (in einem 64-Bit-Linux-Betriebssystem):
sizeof of the array is : 28 sizeof of the parameter is : 8 Length of the array
is : 7 Length of the parameter is : 2
Ausgabe (in einem 32-Bit-Windows-Betriebssystem):
sizeof of the array is : 28 sizeof of the parameter is : 4 Length of the array
is : 7 Length of the parameter is : 1