Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Lớp lưu trữ static (static storage class) trong ngôn ngữ C là gì?


Có 4 lớp lưu trữ trong C:

  • auto
  • extern
  • static
  • register

Biến static

Từ khóa: static.

Phạm vi

  • Biến static giữ giá trị suốt chương trình và giữa các lần gọi hàm.
  • Biến static chỉ khởi tạo một lần.

Giá trị mặc định là 0.

Ví dụ 1

Chương trình C cho static storage class:

#include <stdio.h> 
main() { 
    inc(); 
    inc(); 
    inc(); 
} 
inc() { 
    static int i = 1; 
    printf("%d", i); 
    i++; 
}

Kết quả

1 2 3

Ví dụ 2

Chương trình C khác so sánh với auto:

#include <stdio.h> 
main() { 
    inc(); 
    inc(); 
    inc(); 
} 
inc() { 
    auto int i = 1; 
    printf("%d", i); 
    i++; 
}

Kết quả

1 1 1

Ví dụ 3

#include <stdio.h> 
void function(); 
int main() { 
    function(); 
    function(); 
    return 0; 
} 
void function() { 
    static int value = 1; 
    printf("\nvalue = %d", value); 
    value++; 
}

Kết quả

value = 1 
value = 2