Maison > développement back-end > C++ > Comment les modifications de paramètres affectent-elles les fonctions d'appel en C ?

Comment les modifications de paramètres affectent-elles les fonctions d'appel en C ?

Barbara Streisand
Libérer: 2024-12-24 19:02:15
original
212 Les gens l'ont consulté

How Do Parameter Modifications Affect Calling Functions in C  ?

Modification des paramètres dans les fonctions

Dans une fonction, la modification de la valeur d'un paramètre peut ou non affecter la fonction appelante en C . Prenons l'exemple suivant :

void trans(double x, double y, double theta, double m, double n) {
    m = cos(theta) * x + sin(theta) * y;
    n = -sin(theta) * x + cos(theta) * y;
}
Copier après la connexion

L'appel de cette fonction avec trans(center_x, center_y, angle, xc, yc) soulève la question : xc et yc seront-ils modifiés ?

En C , la méthode de transmission des paramètres par défaut est l'appel par valeur, ce qui signifie qu'une copie de l'argument est transmise à la fonction. Ainsi, la modification de m et n dans trans n'affectera pas xc et yc.

Pour garantir que les modifications apportées aux paramètres au sein de la fonction sont reflétées dans la fonction appelante, vous pouvez utiliser des références. En C , les références offrent une alternative aux pointeurs et se comportent comme des alias pour les variables. En utilisant des références, vous pouvez modifier directement les variables d'origine :

void trans(double x, double y, double theta, double& m, double& n) {
    m = cos(theta) * x + sin(theta) * y;
    n = -sin(theta) * x + cos(theta) * y;
}

int main() {
    trans(center_x, center_y, angle, xc, yc);
}
Copier après la connexion

Dans ce cas, lorsque xc et yc sont passés à trans, ils sont traités comme des alias pour les variables d'origine, permettant à trans de modifier leurs valeurs directement.

En C, une approche similaire consiste à transmettre des pointeurs ou des adresses aux variables au lieu de leurs valeurs. Cependant, l'utilisation de références en C est généralement considérée comme plus pratique et plus sûre.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal