2017-12-24 33 views
-7

이 같은 코드가있는 경우 :메모리에서이 변수는 c?

메모리 (스택 데이터 힙)이 변수 (특히 로컬 변수 정의 e)에 저장된다
const int a=2; 
int b; 
int main() 
{ 
const int c=4 
static int d; 
int e; 
int f=5; 
} 

? 정의 로컬 변수 E는 쓰레기 값을 가질 것이다 (이 왔는가?)

+2

플랫폼/OS/...에 달려 있습니다. 왜 걱정해야합니까 –

+1

누가 어디서나 저장할 수 있다고 누가 말했습니까? – StoryTeller

+0

http://xyproblem.info/ – Murphy

답변

2
  • 전역 변수 -------> 데이터
  • 정적 변수 -------> 데이터
  • 상수 데이터 유형 -----> 코드 및/또는 데이터. 상수 자체가 데이터 세그먼트에 저장되고 코드에 대한 참조가 코드에 임베드 될 상황에 대한 문자열 리터럴을 고려하십시오.
  • (선언되고 함수로 정의 된) --------> stack
  • 변수 선언 main 함수 -----> 스택 포인터
  • 정의 (예를 : char *arr, int *arr) -------> 스택 데이터 나, 상황에 따라. C를 사용하면 전역 또는 static 포인터를 선언 할 수 있습니다.이 경우 포인터 자체가 데이터 세그먼트로 끝납니다. (malloc, calloc, realloc 사용)
  • 동적으로 할당 된 공간 --------> 힙

그것은 "스택"공식적으로 "자동 스토리지 클래스"라고 언급 할 가치가있다.

+0

정의되지 않은 지역 변수는 무엇입니까? –

+0

변수가 선언되고 정의 된 main 함수에서 -----> 스택 –

+0

변수 만 선언 되었습니까? –