2016-03-19 5 views
0

Was würde dieser C-ähnliche Pseudo-Code für den folgenden Code zurückgeben. In diesem Code wird angenommen, dass die Parameter für incrementAll Call-by-Value-Ergebnis verwenden. Danke für jede Hilfe.Pseudo-Code-Beispiel für Call-by-Value-Ergebnis

void incrementAll (int val1, int val2, int val3) { 
    val1 += 1; 
    val2 += 1; 
    val3 += 1; 
} 
void main() { 
    int save = 1; 
    int list[] = {1, 2, 3, 4, 5}; 
    incrementAll(save, list[save], list[list[save]]); 
    for (int i=0; i < listLength; i++) { 
      printf("%d ", list[i]); 
    } 
    printf("\n"); 
} 
+0

Ich bin mir nicht sicher, was Sie hier fragen möchten. Wenn Sie darüber sprechen, wird das Haupt zurückgeben, es wird nichts zurückgeben, die Funktion wird nichts zurückgeben. Kannst du meine Verwirrung klären? –

+0

Entschuldigung, ich habe die Hauptversion aktualisiert. Main sollte nun die Liste drucken –

Antwort

0

Verwenden des Anruf Wert Ergebnis sein würde der Ausgang 13445 sein, wie im Aufruf von Wert Ergebnis wird zuerst der Array-Wert der lokalen Variablen kopiert wird, am Ende des Funktionsaufrufes wird der geänderte Wert kopiert zurück in die ursprünglichen Parameter. Aber es ist kein Merkmal von C.

+0

das soll hypothetischer nicht wörtlicher C-Code sein. Ich nehme an, wir nehmen an, dass incrementAll Call-by-Value-Ergebnis ist. Tut mir leid, dass ich das nicht klarer mache. –

+0

@DanielKobe Wenn es sich um einen hypothetischen C-Code handelt, gibt der Code immer noch 12345 zurück, solange es sich um einen Wert handelt, es sei denn, ich bin nicht in der Lage, die Frage zu beantworten, sorry –

+0

Nein ist nicht call by value, sein call by value- Ergebnis –

Verwandte Themen