Maison >développement back-end >C++ >Comment les tableaux sont-ils transmis aux fonctions en C ?

Comment les tableaux sont-ils transmis aux fonctions en C ?

DDD
DDDoriginal
2024-12-19 04:26:08983parcourir

How Are Arrays Passed to Functions in C  ?

Passer des tableaux aux fonctions en C

En C, les tableaux peuvent être transmis aux fonctions soit par référence, soit par valeur. Cependant, les tableaux ne sont pas comme des variables normales dans le sens où vous ne pouvez pas simplement transmettre un nom de tableau à une fonction et le traiter comme un élément unique d'un type particulier. Au lieu de cela, un nom de tableau est traité comme un pointeur vers le premier élément du tableau.

Par conséquent, lorsque vous déclarez un paramètre de fonction sous forme de tableau, vous déclarez en fait un pointeur vers ce type d'élément. Par exemple, la déclaration de fonction suivante déclare une fonction qui prend un tableau d'entiers et un entier représentant la longueur du tableau :

void printarray(int arg[], int length);

Lorsqu'un appel est effectué à la fonction printarray à partir de la fonction principale, le le nom du tableau est passé en argument. Le nom du tableau fait référence à l'adresse du premier élément du tableau. Cela équivaut à passer un pointeur vers le premier élément du tableau.

Dans le code ci-dessous, la variable firstarray est un tableau de trois entiers. La variable secondarray est un tableau de cinq entiers. La fonction printarray est appelée deux fois, une fois avec l'argument firstarray et une fois avec l'argument secondarray. La longueur de l'argument firstarray est 3 et la longueur de l'argument secondarray est 5.

int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10};
printarray(firstarray, 3);
printarray(secondarray, 5);

Dans la fonction printarray, le paramètre arg est un pointeur vers le premier élément du tableau transmis. Le paramètre length est la longueur du tableau transmis. La fonction printarray imprime les valeurs des éléments du tableau.

void printarray (int arg[], int length) {
    for (int n = 0; n < length; n++) {
        cout << arg[n] << " ";
    }
    cout << "\n";
}

La sortie du code est comme suit :

5 10 15
2 4 6 8 10

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!

Déclaration:
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