Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie die Länge des C-Arrays

So erhalten Sie die Länge des C-Arrays

小老鼠
小老鼠Original
2024-05-08 17:54:201216Durchsuche

In der C-Sprache kann die Länge eines Arrays nicht direkt ermittelt werden, es gibt jedoch die folgenden Methoden, um sie indirekt zu ermitteln: Verwenden Sie den Operator „sizeof“, um die Größe eines einzelnen Elements zu dividieren. Verwenden Sie das Präprozessormakro „#define“, um das Array zu definieren Länge; Verwenden Sie Zeigerarithmetik, um die Array-Länge zu berechnen. Verwenden Sie dynamische Array-Bibliotheksfunktionen (z. B. array_size()).

So erhalten Sie die Länge des C-Arrays

So ermitteln Sie die Länge eines C-Arrays

In der Sprache C ist ein Array ein zusammenhängender Speicherblock, in dem Elemente desselben Typs gespeichert sind. Die Größe des Arrays wird zur Kompilierzeit bestimmt, daher kann seine Länge nicht direkt aus dem Array selbst ermittelt werden. Es gibt jedoch die folgenden Methoden, um die Länge des Arrays indirekt zu ermitteln:

1. Verwenden Sie den Operator „sizeof“.

Der Operator „sizeof“ gibt die Größe des für den Array-Typ erforderlichen Speichers in Bytes zurück . Um die Anzahl der Elemente eines Arrays zu ermitteln, können Sie den Operator sizeof auf den Array-Typ anwenden und die Größe der einzelnen Elemente dividieren: sizeof 运算符返回数组类型所需内存的大小,单位为字节。要获得数组的元素数量,可以将 sizeof 运算符应用于数组类型除以单个元素的大小:

<code class="c">int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int length = sizeof(arr) / sizeof(arr[0]);
    printf("数组长度:%d\n", length);
    return 0;
}</code>

2. 使用 预处理器宏

预处理器宏允许您定义一个符号,该符号可以在编译时替换为一个值。您可以使用 #define 预处理器指令来定义一个宏,其中包含数组的长度:

<code class="c">#define ARRAY_LENGTH 5

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    printf("数组长度:%d\n", ARRAY_LENGTH);
    return 0;
}</code>

3. 使用 指针运算

数组名本质上是一个指向数组第一个元素的指针。因此,您可以使用指针运算来计算数组的长度。具体来说,您可以将数组指针指向最后元素,然后减去指向第一个元素的指针,再除以元素的大小:

<code class="c">int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int *end = &arr[sizeof(arr) / sizeof(arr[0]) - 1];
    int length = end - arr + 1;
    printf("数组长度:%d\n", length);
    return 0;
}</code>

4. 使用 动态数组库函数

一些 C 语言库提供了动态数组库函数,允许您创建和管理动态数组。这些函数通常包含一个获取数组长度的函数,例如 array_size()

<code class="c">#include <array.h>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int length = array_size(arr);
    printf("数组长度:%d\n", length);
    return 0;
}</code>
🎜2. Verwendung von Präprozessor-Makros 🎜🎜🎜Präprozessor-Makros Damit können Sie ein Symbol definieren, das zur Kompilierungszeit durch einen Wert ersetzt werden kann. Sie können die Präprozessoranweisung #define verwenden, um ein Makro zu definieren, das die Länge des Arrays enthält: 🎜rrreee🎜🎜3. Verwendung der Zeigerarithmetik 🎜🎜🎜Ein Array-Name ist im Wesentlichen ein Zeiger auf das erste Element des Arrays Zeiger auf das Element. Daher können Sie die Länge eines Arrays mithilfe der Zeigerarithmetik berechnen. Konkret können Sie den Array-Zeiger auf das letzte Element zeigen, dann den Zeiger auf das erste Element subtrahieren und durch die Größe des Elements dividieren: 🎜rrreee🎜🎜4 Verwenden Sie die dynamischen Array-Bibliotheksfunktionen 🎜🎜🎜Einige C-Bibliotheken bieten Mit den Funktionen der dynamischen Array-Bibliothek können Sie dynamische Arrays erstellen und verwalten. Zu diesen Funktionen gehört normalerweise eine Funktion, die die Länge des Arrays ermittelt, z. B. die Funktion array_size(): 🎜rrreee

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Länge des C-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn