336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
2. C언어 기초
5) 변수
▣ 스택 & 데이터 영역
- 스택영역 : 프로그램이 진행되면서 필요한 임시값들 및 지역 변수
- 데이터영역 : 전역 변수 및 문자열
▣ 스택프레임
- 한 함수당 스택프레임은 하나씩 존재
- 함수가 실행될 때 제일 먼저 자기 함수가 사용할 스택프레임을 확보.
- 함수 안의 지역변수들을 정리함.
- 스택프레임을 관리하기 위해 나온 자료구조 = 스택
☞ 스택은 제일 먼저 넣은 애가 제일 나중에 나옴.
☞ 프링글스처럼 제일 밑에 차곡차곡 쌓고 그 위에부터 나올 수 있음.
▣ 지역 변수
- 함수 내부에서 정의되어 해당 함수 내부에서만 사용가능
- 사용될 당시에 스택영역에 공간할당 (선언할 때 공간할당됨)
- 함수가 종료되면 지역변수 공간도 같이 사라짐. (스택프레임이 해제됨)
- 초기화하지않으면 쓰레기값이 들어감.
▣ 전역 변수
- 함수 외부에서 선언되어 어떤 함수에서든 사용 가능
- 컴파일시 기억장소가 할당되어 프로그램 실행부터 종료시까지 데이터 영역에 할당.
- 자동으로 초기화됨.
#include <stdio.h> int global = 10; int FuncA() { int x = 0; int y = 1; return x + y + global; } int main() { int a = 0; a = FuncA(); global += a; printf("Global : %d\n", global); printf("x : %d\n", x); return 0; }
- 위의 예제는 돌아가지 않음.
- main 함수에서 FuncA함수의 지역변수인 x를 사용할 수 없기 때문!
i2sec 대구지점 23기 수료생.
'해킹&보안 > C언어' 카테고리의 다른 글
[D+15] 파일 입출력 (1) (0) | 2017.02.27 |
---|---|
[D+14] C언어 기초 (7) (0) | 2017.02.26 |
[D+12] C언어 기초 (5) (0) | 2017.02.22 |
[D+10] C언어 기초 (4) (0) | 2017.02.20 |
[D+9] C언어 기초 (3) (0) | 2017.02.17 |