Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- rest
- node.js
- Repository
- 안드로이드
- 자바
- EC2
- cordova
- JSP
- commit
- Q-Map
- 인공지능
- HTML
- java
- Android
- Ionic
- git
- SSH Key
- 저장소
- express
- ubuntu
- IT 도서
- mean
- ssh
- Retrofit
- gmaps
- 깃
- node
- Linux
- AWS
- angularJs
Archives
- Today
- Total
UroA 개발 블로그
[C언어] static 변수란? 본문
static 변수란?
static 변수는 선언된 함수내에서만 사용이 가능하며(지역변수의 특성), 단 한번만 초기화를 하며 프로그램이 종료될때까지 메모리공간에 존재합니다(전역변수의 의 특성).
지역 변수와의 다른점은 해당 함수가 종료되어도 소멸되지 않는다는 점입니다.
이처럼 다른함수에서는 쓸 수 없지만 해당함수 내에서는 static 변수는 프로그램이 종료되기 전까지는 소멸되지 않습니다.
<예제>
#include <stdio.h>
void simpleFunc(void);
int main(void) {
int i;
for(i = 0; i < 3; i++) {
simpleFunc();
}
return 0;
}
void simpleFunc(void) {
static int num1 = 0;
int num2 = 0;
num1++, num2++;
printf("static: %d, local: %d\n", num1, num2);
}
정적변수의 특징에 대하여 정리하고 마치도록 하겠습니다.
1. 선언 위치는 지역변수와 같다. ( 순수 C언어의 경우 함수의 맨 처음 부분, C++은 어디서든지 가능 )
2. 특정 선언 지역에서만 접근 할 수 있다.
3. 메모리 공간에서 변수의 저장공간은 전역변수와 그 위치가 같다. (후에 메모리에 대하여 알아보겠습니다.)
4. 초기값을 주지 않을 경우 항상 0 으로 초기화 되며 프로그램을 실행시킬 때 단 한번만 초기화된다.
Comments