Comment obtenir la longueur du tableau c

小老鼠
Libérer: 2024-05-08 17:54:20
original
1213 Les gens l'ont consulté

En langage C, la longueur d'un tableau ne peut pas être obtenue directement, mais il existe les méthodes suivantes pour l'obtenir indirectement : utilisez l'opérateur sizeof pour diviser la taille d'un seul élément ; utilisez la macro de préprocesseur #define pour définir le tableau ; length;utilisez l'arithmétique du pointeur pour calculer la longueur du tableau ;Utilisez les fonctions de la bibliothèque de tableaux dynamiques (telles que array_size()).

Comment obtenir la longueur du tableau c

Comment obtenir la longueur d'un tableau C

En langage C, un tableau est un bloc de mémoire contigu dans lequel sont stockés des éléments du même type. La taille du tableau est déterminée au moment de la compilation, sa longueur ne peut donc pas être obtenue directement à partir du tableau lui-même. Mais il existe les méthodes suivantes pour obtenir indirectement la longueur du tableau :

1. Utilisez l'opérateur sizeof

L'opérateur sizeof renvoie la taille de la mémoire requise par le type de tableau, en octets. . Pour obtenir le nombre d'éléments d'un tableau, vous pouvez appliquer l'opérateur sizeof au type de tableau et diviser la taille des éléments individuels : 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion
🎜2 Utilisation des macros du préprocesseur 🎜🎜🎜Macros du préprocesseur. vous permet de Définit un symbole qui peut être remplacé par une valeur au moment de la compilation. Vous pouvez utiliser la directive du préprocesseur #define pour définir une macro qui contient la longueur du tableau : 🎜rrreee🎜🎜3 Utilisation de l'arithmétique du pointeur 🎜🎜🎜Un nom de tableau est essentiellement un pointeur vers le premier élément. du tableau Pointeur vers l’élément. Par conséquent, vous pouvez utiliser l’arithmétique du pointeur pour calculer la longueur d’un tableau. Plus précisément, vous pouvez pointer le pointeur du tableau vers le dernier élément, puis soustraire le pointeur vers le premier élément et diviser par la taille de l'élément : 🎜rrreee🎜🎜4 Utilisez les fonctions de la bibliothèque de tableau dynamique 🎜🎜🎜Certaines bibliothèques C fournissent The. Les fonctions de la bibliothèque de tableaux dynamiques vous permettent de créer et de gérer des tableaux dynamiques. Ces fonctions incluent généralement une fonction qui obtient la longueur du tableau, comme la fonction array_size() : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!