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 | 31 |
Tags
- cordova
- Ionic
- node
- 안드로이드
- gmaps
- express
- ubuntu
- rest
- HTML
- IT 도서
- commit
- 깃
- 자바
- git
- 인공지능
- JSP
- Q-Map
- SSH Key
- ssh
- 저장소
- EC2
- Linux
- java
- angularJs
- Android
- node.js
- Retrofit
- Repository
- mean
- AWS
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