Cần hỏi về biến static trong C

Cho e hỏi sao lại như vậy

#include <stdio.h>
static short n = 10; 
// static long b = 10;
// static long c;
// static long long n =10;

void f(){
	static short n = 0;
	n++;
	printf("%d\n", n);
	// printf("%d\n", &n);
}
int main(int argc, char const *argv[])
{
	f();
	f();
	printf("%d\n", n );
	// static long b;
	// printf("%d\n", sizeof(long));
	return 0;
}

Kết quả:

1
2
10

Một là của hàm, một là toàn cục.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?