Latest web development tutorials

C funzione di chiamata per valore

funzione C funzione C

Per ivalori tradizionali di parametri passati per chiamare lafunzione, copiare i valori effettivi dei parametri ai parametri formali della funzione. In questo caso, una forma modificata di parametri all'interno della funzione non altera i parametri effettivi.

Per impostazione predefinita, il linguaggio CCall-by-modiper passare parametri. Generalmente, questo significa che il codice all'interno della funzione non modifica i parametri effettivi utilizzati per chiamare la funzione.Swap Function ()è definita come segue:

/* 函数定义 */
void swap(int x, int y)
{
   int temp;

   temp = x; /* 保存 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 temp 赋值给 y */
  
   return;
}

Ora, cerchiamo di passando argomenti reali per chiamare la funzioneswap ():

#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 );
 
   /* 调用函数来交换值 */
   swap(a, b);
 
   printf("交换后,a 的值: %d\n", a );
   printf("交换后,b 的值: %d\n", b );
 
   return 0;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 100
交换后,b 的值: 200

L'esempio mostra che, sebbene un cambiamento nella funzione e il valore di b, ma in realtà, i valori A e B non sono cambiati.

funzione C funzione C