Wie Sie die Größe des Arrays in C erhalten

Satishkumar Bharadwaj 12 Oktober 2023
  1. sizeof() Operator zum Bestimmen der Größe eines Arrays in C
  2. Länge des Arrays in C ermitteln
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

Verwandter Artikel - C Array