Maison >développement back-end >C++ >Comment les modifications de paramètres affectent-elles les fonctions d'appel en 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; }
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); }
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!