티스토리 뷰
메모리 공간에 할당되는 지역변수와 전역변수.
지역변수 : 함수 내부에서 할당되는 변수는 지역변수로써 메모리 stack 영역에 할당된다.
main 함수도 함수이기 때문에 지역변수로 지정된다.
초기값은 쓰레기값이기 때문에 초기화 되어있지 않는다.
함수가 종료되면 지정한 값은 해제된다.(값의 내용은 남아있음)
전역변수 : 함수 외부에서 선언되어 어떤 함수에서든 사용가능한 변수.
컴파일시 기억장소가 할당되어 프로그램 실행부터 종료까지 Data 영역에 존재하고
자동으로 0 으로 초기화한다.
Data 영역에는 읽기만 가능한 영역이 있고
읽기/쓰기 가 가능한 영역이 있다.
함수 외부에 있는 변수는 W/R 가능.
함수 안에 선언부에 있는 초기 문자열 지정한 값은 read 만 가능하다.( 이 문자열도 data영역에 들어감)
main(){
char * string = " test ";
}
위에 test의 값을 수정할 수 없다.
#include<stdio.h>
char * string = "test";
int main(){
string = "aaaa";
printf("%s \n",string);
return 0;
}
위에 string은 전역변수로 수정가능한 Data 영역에 저장됨.
결과값 :
aaaa |
'ETC > 종합' 카테고리의 다른 글
ascii-table (이미지) (0) | 2015.07.10 |
---|---|
스테가노그래피 data추출 (0) | 2015.07.10 |
난수 함수 (rand, srand) (0) | 2015.07.03 |
기초 문법( break, continue) (0) | 2015.07.01 |
기초 문법(while, do while, for, switch~ case) (0) | 2015.07.01 |
Comments