La différence entre la forme de la fonction et le paramètre réel en langage C

Paramètres formels : les paramètres spécifiés lors de la définition de la fonction, ils n'occupent pas l'unité de stockage en mémoire lorsque l'appel de fonction ne se produit pas. Ce n'est que lorsqu'un appel de fonction se produit que les paramètres formels de la fonction se voient allouer des unités de mémoire. Une fois l'appel de fonction terminé, l'unité de mémoire occupée par les paramètres formels est également libérée.

Paramètres réels : les paramètres que vous transmettez lorsque vous appelez la fonction. Les paramètres réels peuvent être des constantes, des variables, des expressions.

Remarque : Les paramètres formels et réels occupent en fait deux unités de stockage différentes.

Insérez la description de l'image ici
Transfert entre les paramètres formels et réels

Dans le langage C, la transmission de données du paramètre formel de participation réelle est une "transmission de valeur". La transmission unidirectionnelle ne peut être transmise que du paramètre réel au paramètre formel, et non du paramètre formel au paramètre réel. Si la valeur du paramètre formel change, cela ne changera pas la valeur du paramètre réel de la fonction appelante.
Classification du transfert entre les paramètres réels

1. Passez par valeur (pas de connexion pour une forme réelle)

Pass-by-pass est couramment utilisé dans la programmation ordinaire. Une variable d'un type de données de base est définie et la variable est transmise à la fonction comme argument de la fonction lorsqu'une fonction est appelée. Cette méthode de transfert utilise le transfert de valeur unidirectionnel, la forme réelle n'a pas de connexion et la modification du paramètre formel n'affecte pas le paramètre réel.

2. Transfert par adresse (les paramètres réels peuvent être modifiés en utilisant des paramètres formels)

Le passage par adresse se produit principalement lorsque les paramètres de la fonction sont des variables de pointeur, des tableaux, etc.

Remarque:

Dans le cas de l'utilisation d'un pointeur comme paramètre de fonction en substance, lorsque la fonction est appelée, la variable de paramètre réelle est transmise à la variable de paramètre formelle, et le reste est prisPassage de valeur unidirectionnel. Si la valeur de la variable de pointeur de paramètre formel est simplement modifiée dans la fonction appelée, ces paramètres formels sont détruits après la fin de l'appel de fonction, ce qui n'affectera pas la valeur de la variable de pointeur de paramètre réel lorsque la fonction est appelée.

Ce n'est que lorsque vous modifiez la valeur de la variable pointée par le pointeur en actionnant la variable formelle de pointeur de paramètre dans la fonction appelée, que vous pouvez modifier la valeur de la variable pointée par la variable de pointeur de paramètre réelle. Ce n'est que dans ce cas que le changement de paramètre formel peut affecter le paramètre réel.

Publié 28 articles originaux · loué 7 · visites 1177

Je suppose que tu aimes

Origine blog.csdn.net/haduwi/article/details/105330270
conseillé
Classement