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