티스토리 뷰

메모리 공간에 할당되는 지역변수와 전역변수.

 

지역변수 : 함수 내부에서 할당되는 변수는 지역변수로써 메모리 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
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday