La fonction est un concept très important dans le langage C. La fonction est un morceau de code qui nous aide à exécuter certaines action. En fonction de sa définition, la fonction peut être divisée en quatre types.
Ceci est basé sur la fonction prenant la sortie et la sortie de retour.
Dans le sujet d'aujourd'hui, nous discuterons de l'appel par valeur et de l'appel par référence. Ces sujets sont totalement basés sur la classification de la fonction.
Exemple de programmation 1:
Dans cet exemple de programmation, nous verrons le mécanisme d'appel par valeur.
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #inclure int add (int, int); // Prototype de déclaration de fonction. int main () int s, x, y; printf ("Entrée 2 numéros"); scanf ("% d% d", & x, & y); S = add (x, y); // appel de fonction. printf ("Sum is% d", s); retour 0; int add (int a, int b) // Définition de la fonction et passant la valeur à travers la fonction. INT C; c = a + b; Retour C; |
Sortir:
Explication:
Cet exemple de programmation est l'exemple idéal de l'appel par valeur. C'est l'exemple de prend quelque chose et retourne quelque chose.
Saisir une valeur et une sortie et une sortie aucun le programme est le même comme l'entrée non et la sortie de la valeur. La seule différence est que, comme c'est par nature en prenant quelque chose, donc la valeur de deux nombres doit être transmise en fonction d'appel. Elles sont appelées arguments réels.
Ou, l'utilisateur prend la valeur du clavier utilisé par la fonction main (). La valeur est ensuite transmise à la fonction Add (). Ces valeurs sont appelées arguments formels.
Donc, c'est un type de appelé par valeur exemple. Sinon, la procédure de retour est la même que la procédure ne prend rien, renvoie quelque chose.
Exemple de programmation 2:
Ici, nous verrons un autre exemple de méthode d'appel par valeur en appliquant ne prend quelque chose et ne renvoie rien à procédure.
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #inclure void add (int, int); // Déclaration de fonction dans le monde int main () int x, y; void add (int, int); // Déclaration de fonction localement printf ("Entrée 2 numéros"); scanf ("% d% d", & x, & y); // Arguments réels ajouter (x, y); retour 0; void add (int x, int y) // arguments formels INT C; C = x + y; printf ("sum is% d", c); |
Sortir:
Explication:
Si nous voulons ajouter les deux valeurs de deux variables qui sont déclarées à l'intérieur du principal (). Ajouter ceci dans un nom de fonction différent ajouter (). Ensuite, nous utilisons ne prend quelque chose ne renvoie rien à la méthode. Dans ce cas, dans la fonction principale, la valeur de x, y est transmise à la fonction ADD lorsque Add () appelle. Car cela peut être nommé comme appel par valeur.
Chaque fois que nous passons la valeur comme argument à une fonction d'appel, ces arguments sont appelés arguments réels.
Par définition, à l'intérieur de la parenthèse d'une fonction lorsque nous déclarons la variable qui recevra la valeur de la variable qui est adoptée par la fonction d'appel est appelée argument formel.
Le nom de la variable de l'argument réel et de l'argument formel peut être le même car le compilateur sait cette variable x, y sont déclarés dans la fonction main () et x, y déclarés dans Add () sont des variables différentes.
Dans la fonction d'appel, nous passons simplement la valeur des variables déclarées à l'intérieur de Main (). Pour cela, nous écrivons ajouter (x, y);
Exemple de programmation 3:
Ici, nous verrons un exemple d'appel par adresse en appliquant prend quelque chose et renvoie quelque chose.
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #inclure int add (int *, int *); // Déclaration de prototype de fonction dans le monde int main() int s, x, y; printf ("Entrez deux numéros:"); scanf ("% d% d", & x, & y); s = add (& x, & y); // passant l'adresse des variables. printf ("La somme est:% d \ n", s); retour 0; int add (int * a, int * b) INT C; c = * a + * b; retour (c); |
Sortir:
Explication:
Ceci est un exemple d'appel par référence. Parfois, dans notre programme, une situation se produit lorsque nous ne sommes pas en mesure de transmettre la valeur de la variable via la fonction. Nous devons passer l'adresse de ces variables pour y accéder. Il est appelé appel par référence.
Ici, nous passons l'adresse de variable a, variable b à l'intérieur de la fonction ADD pour résumer les valeurs de variable a, variable b.
Exemple de programmation 4:
Ici, nous verrons un autre exemple d'appel par adresse en appliquant prend quelque chose et renvoie quelque chose.
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #inclure int swap (int *, int *); int main () int p = 56; int q = 22; printf ("Avant d'échanger la valeur de l'entier p:% d \ n", p); printf ("Avant d'échanger la valeur de l'entier q:% d \ n", q); swap (& p, & q); // appelle la fonction. printf ("après échanger la valeur de l'entier p:% d \ n", p); printf ("après échanger la valeur de l'entier Q:% d \ n", q); retour 0; int swap (int * x, int * y) // passant l'adresse des variables. int t; / * variable temporaire pour stocker la valeur de la 1ère variable * / t = * x; * x = * y; * y = t; |
Sortir:
Explication:
Ceci est un exemple d'appel par référence. Parfois, dans notre programme, une situation se produit lorsque nous ne sommes pas en mesure de transmettre la valeur de la variable via la fonction. Nous devons passer l'adresse de ces variables pour y accéder. Il est appelé appel par référence.
Ici, nous passons l'adresse de variable a, variable b à l'intérieur de la fonction swap () pour échanger les valeurs de variable a, variable b. En conséquence valeurs de a, b sont échangés par appel par référence.