30/09/2018, 16:03
Cùng đặt vấn đề nào (Bản số 6)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void func_a()
{
static int i = 0;
i++;
printf("%d", i);
}
int main()
{
for (int i = 0;i<10;i++) func_a();
}
Đố các bạn biết đoạn chương trình trên in ra cái gì và tại sao?
Bài liên quan
Nó in ra 12345678910 vì biến i là biến
static
. Biếnstatic
sẽ được khởi tạo một lần duy nhất, các lần khởi tạo sau sẽ bị bỏ qua. Dẫn đến biếni
trong hàmfunc_a
chỉ được khởi tạo 1 lần và khi tăng giá trị của i lên thì giá trị đó vẫn còn được giữ lại cho lần gọi hàm sau.