Latest web development tutorials

C appel de fonction de référence

fonction C fonction C

Référence aux paramètres de la méthode d' appel,copier les paramètres d'adresse aux paramètres formels passés à la fonction. Dans la fonction, l'adresse utilisée pour accéder à l'appel des paramètres réels à utiliser. Cela signifie que la forme modifiée des paramètres influent sur les paramètres réels.

Valeur passée par référence, le pointeur d'argument est passé à la fonction, tout comme les autres valeurs passées à la fonction même. Ainsi Par conséquent, leswap de fonction suivante (),vous devez déclarer l'argument de la fonction comme un type de pointeur, la valeur de fonction pour les points de paramètres pour échanger deux variables entières.

/* 函数定义 */
void swap(int *x, int *y)
{
   int temp;
   temp = *x;    /* 保存地址 x 的值 */
   *x = *y;      /* 把 y 赋值给 x */
   *y = temp;    /* 把 temp 赋值给 y */
  
   return;
}

Pour plus de détails C pointeur, visitez le C - Pointer section.

Maintenant, laissez - nous passer par référence à la fonction d'appelswap ():

#include <stdio.h>
 
/* 函数声明 */
void swap(int *x, int *y);
 
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
 
   printf("交换前,a 的值: %d\n", a );
   printf("交换前,b 的值: %d\n", b );
 
   /* 调用函数来交换值
    * &a 表示指向 a 的指针,即变量 a 的地址 
    * &b 表示指向 b 的指针,即变量 b 的地址 
   */
   swap(&a, &b);
 
   printf("交换后,a 的值: %d\n", a );
   printf("交换后,b 的值: %d\n", b );
 
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Avant de passer, une valeur: 100
Avant de commutation, les valeurs b: 200
Après un échange, une valeur de: 200
Après l'échange des valeurs, b: 100

L'exemple ci-dessus montre que, avec les valeurs traditionnelles de différents appels, le renvoi d'appel dans la fonction pour changer les valeurs de a et b, en fait, changé la fonction à l'extérieur a et b des valeurs.

fonction C fonction C