Grundlagen der Programmiersprache C
int f(void) {
static int s = 0;
int a = 0;
s++;
a++;
return s * 10 + a;
}Die obige Funktion f wird dreimal hintereinander aufgerufen. Welcher Rückgabewert ergibt sich beim dritten Aufruf?
- A11
- B13
- C31
Antwort und Erläuterung anzeigen
Antwort: C. 31
Die mit static versehene lokale Variable s wird vor dem Programmstart einmal mit 0 initialisiert und behält ihren Wert auch nach der Rückkehr aus der Funktion. Deshalb steigt s mit jedem Aufruf auf 1, 2 und 3. Die Variable a ohne static wird bei jedem Aufruf neu angelegt und beginnt bei 0, ist also jedes Mal 1. Der Rückgabewert beim dritten Aufruf ist 3 × 10 + 1 = 31.
Weiter: 9 weitere Fragen zu Grundlagen der Programmiersprache C