Τι θα τυπώσει το πρόγραμμα, όπου η counter είναι στατική αλλά παίρνει την τιμή 0
με ξεχωριστή εντολή;
#include <stdio.h>
void foo() {
static int counter; int i = 0; counter = 0;
counter++; i++;
printf("%d %d\n", counter, i);
}
int main() {
foo(); foo(); foo();
return 0;
}
Συγκρίνετε με την εκδοχή όπου το = 0 είναι μέρος της δήλωσης
static int counter = 0;. Μια αρχικοποίηση στη δήλωση μιας στατικής μεταβλητής
γίνεται μία φορά· μια εντολή ανάθεσης όμως εκτελείται κάθε φορά που τη φτάνει η ροή.
Αριθμός στον οδηγό: Α14.7
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec14-static-assign ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec14-static-assign.html ·
Markdown (GitHub)