C언어 수업정리/3월 수업정리

3월 26일 메모리영역과 주소값관계

송시혁 2013. 3. 26. 11:46

 

#include <stdio.h>
int main()
{
  int a =1;
  int b =2;
  int c =3;
  int d =4;
  int e =5;
  
  printf("a의 주소 = %08x\n"&a);
  printf("b의 주소 = %08x\n"&d);
  printf("c의 주소 = %08x\n"&c);
  printf("d의 주소 = %08x\n"&d);
  printf("e의 주소 = %08x\n"&e);

  printf("main의 주소 = %08x\n", main);
  printf("printf의 주소 = %08x\n", printf);    
  
  
  return 0;

}

 

main에는 '&'를 붙이지 않는다. 함수이기 때문이다. printf문도 동일하다.

주소값이 비슷한것끼리 같은영역에 할당된다.(끼리끼리 논다ㅎㅎ)

아래 출력을 보면 12ff~는 stack 영역에 , 0040~은 code영역에 해당. 그림참조한다.

 

 

 

 

 

 

void A2()

{

       printf("~~~);

}

int A1;

{    

}

에서

symbol 표

타입

이름

주소

int

A1

~~~

 

A2

~~~