Is this comment correct based on the code below: I was confused why var did not increment in each loop and why static_var did.
Is this correct: In the context [in function] var = 5 and is incremented by 1, var = 6. Then for each loop var is re-initialized var = 5. While the static_var (since it is initialized only once) retains its incremented value during the loop process. static_var = 5, ++, loop, static_var = 6 ++, loop......
Code:
include <stdio.h>
void function () { //An example function, with its own context
int var = 5;
Static int static_var = 5; // Static variable initialization
printf("\t[in function] var = %d\n", var);
printf("\t[in function] static var = %d\n", static_var);
var++; //increment var by 1
static_var++; //increment static_var by 1.
}
int main() {
int i;
static int static_var = 1337; //the main function, with its own context.
for(i=0; i < 5; i++) { //loop 5 times.
printf("[in main] static_var = %d\n", static_var);
function(); // Call the function
}
}
[in main] static_var = 1337
[in function] var = 5
[in function] static var = 5
[in main] static_var = 1337
[in function] var = 5
[in function] static var = 6
[in main] static_var = 1337
[in function] var = 5
[in function] static var = 7
[in main] static_var = 1337
[in function] var = 5
[in function] static var = 8
[in main] static_var = 1337
[in function] var = 5
[in function] static var = 9