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언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 팩토리얼 예제 (Factorial) (0) | 2020.11.11 |
---|---|
C언어 - 재귀 호출 (0) | 2020.11.10 |
C언어 - 변수의 영역(scope)과 지역변수(Local) (0) | 2020.11.10 |
C언어 - 함수의 프로토 타입 (0) | 2020.11.10 |
C언어 - 함수가 필요할 때 (0) | 2020.11.10 |