C언어 - 지역변수와 스택

2020. 11. 10. 22:23개인공부/C언어

프로그램이 실행되면 최소한의 필요한 메모리를 사용하기 시작한다.(...은 프로그래머는 알기힘들고 알 필요없는 것들)

 

1. main()함수 안의 지역변수 int a가 스택에 쌓이게 된다. // a

 

2. int_max 함수를 호출하고 그안의 int m을 a위에 쌓는다.( 스택에 같이 쌓여있음로 포인터를 이용해서 a를 건드릴수 있다.) //a m

 

3. 연산이 끝나고 m이 빠지고 다시 a만 남는다. // a

 

4. 그다음 내부에 들어가 int b를 읽어 b가 쌓인다. // a b

 

5. 다시 int_max함수를 호출하고 int m을 읽어 그위에 쌓인다. // a b m

 

6. int_max의 연산이 끝난후 m이 스택에서 빠진다. // a b

 

7. 그 후 내부의 int b를 읽어들여 그 바깥의 int b 위에 쌓인다. // a b b

 

8. {int b=123;}을 지난후 b가 빠지고 {int c=456;}에 들어가면서 c가 위에 쌓인다. // a b // a b c

 

9. {int c=456;}을 지나고 c가 빠지면서 마지막 중괄호를 빠져나간다 (int b 빠짐) //   a b  //  a

 

 

 

출처 : 홍정모의 따라배우는 C언어