Heim  >  Artikel  >  Backend-Entwicklung  >  Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

青灯夜游
青灯夜游Original
2019-03-01 13:54:4556077Durchsuche

Die drei Möglichkeiten, Funktionen in der C-Sprache aufzurufen, sind: 1. Aufruf per Wert, d. h. der Wert einer Variablen wird an den formalen Parameter der Funktion übergeben. 2. Aufruf per Referenz, d. h. übergeben die Adresse der Variablen direkt in die Funktion; 3. Der Aufruf nach Adresse wird durch Zeiger implementiert, wobei die Referenz der Variablen an die Funktion übergeben wird.

Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

Die Betriebsumgebung dieses Artikels: Windows 7-System, Version C11, Dell G3-Computer.

Die drei Möglichkeiten, Funktionen in der C-Sprache aufzurufen, sind: Aufruf nach Wert, Aufruf nach Referenz und Aufruf nach Adresse.

1. Call-by-Value

Call-by-Value dient dazu, den Wert einer Variablen an den formalen Parameter der Funktion zu übergeben Der Wert der Variablen generiert einen neuen formalen Parameter. Der Wert wird nach der Operation des formalen Parameters zurückgegeben.

Die in der Funktion geänderten Werte können sich nicht auf die Außenwelt auswirken, sodass Änderungen an den formalen Parametern in der Funktion keinen Einfluss auf die Werte von Variablen außerhalb der Funktion haben.

Lassen Sie es uns anhand des Codebeispiels verstehen:

#include<stdio.h>  
void myswap(int x, int y)  
{  
    int t;  
    t=x;  
    x=y;  
    y=t;  
}  
int main()  
{  
    int a, b;  
    printf("请输入待交换的两个整数:");  
    scanf("%d %d", &a, &b);  
    myswap(a,b);  //作为对比,直接交换两个整数,显然不行  
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);  
    return 0;  
}

Ausführen:

Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

[Empfehlung für ein Video-Tutorial: C-Sprach-Tutorial

Analyse:

Der Grund für keine erfolgreiche Interaktion ist: Bei Verwendung von Call-by-Value wird nur der Wert der formalen Parameter geändert, nicht der tatsächlichen Parameter.

2. Aufruf nach Adresse

Beim Aufruf nach Adresse wird die Adresse der Variablen direkt an die Funktion übergeben, die die Adresse von zuweist Geben Sie eine Variable an, um einen Zeiger auf den formalen Parameter in der Funktion zu geben, sodass der Zeiger auf die Adresse der realen Variablen zeigt, da Änderungen am Inhalt der Adresse, auf die der Zeiger zeigt, außerhalb der Funktion widergespiegelt werden können, d. h Der Wert der Variablen außerhalb der Funktion kann geändert werden.

Lassen Sie es uns anhand des Codebeispiels verstehen:

#include<stdio.h>  
void myswap(int *p1, int *p2)  
{  
    int  t;  
    t=*p1;  
    *p1=*p2;  
    *p2=t;  
}  
int main()  
{  
    int a, b;  
    printf("请输入待交换的两个整数:");  
    scanf("%d %d", &a, &b);  
    myswap(&a,&b);  //交换两个整数的地址  
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);  
    return 0;  
}

Ausführen:

Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

Analyse:

Der Grund für den Erfolg Interaktion Ja: Beim Call by Address wird die ursprüngliche Adresse über den Zeiger verändert, sodass die eigentlichen Parameter ausgetauscht werden.

3. Referenzaufruf

Referenzaufruf wird tatsächlich durch Zeiger implementiert, wobei die Referenz der Variablen an die Funktionsadresse übergeben werden kann erreicht werden Der Effekt des Aufrufs, aber wenn die Funktion wie ein Aufruf nach Wert verwendet wird, kann sie ihren Wert ändern.

Lassen Sie es uns anhand des Codebeispiels verstehen:

#include<stdio.h>
void myswap(int &x, int &y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
  
int main()
{  
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(a,b);  //注意:这里调用方式与传值调用一样,直接以变量a和b作为实参交换
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}

Ausführen:

Welche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?

Analyse:

Der Grund für den Erfolg Interaktion Ja: Aufruf per Referenz. Die Referenz ändert direkt die Werte der beiden tatsächlichen Parametervariablen a und b, sodass sie ausgetauscht werden.

Das obige ist der detaillierte Inhalt vonWelche drei Möglichkeiten gibt es, Funktionen in der C-Sprache aufzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn