코드네임 :
C혼공 9일차 - 변수 사용 영역 본문
지역 변수 : 해당 함수나 블록 내에서만 쓸 수 있는 변수
전역 변수 : 전체 함수 안에서 쓸 수 있는 변수
코드블럭(해당 함수)내에 전역변수와 같은 이름의 지역변수를 선언하면 거기서는 전역변수를 사용할수 업따@@!!
자동 지역변수 (auto 사용, 생략 가능) : 해당 함수가 '호출'될 때마다 생성됨.(즉 호출될때마다 초기화된 값으로 나옴)
정적 지역변수 (static 사용) : 해당 함수가 '호출'될때, 저장된 마지막 값으로 나옴
(393p) ⬆️
레지스터 변수
- 전역변수는 안됨
- 주소 구하기 불가
값을 복사해서 전달하기 (400p)
main 함수의 a를 다른 함수에 복사해주면 해당 매개변수의 메모리공간이 새로 잡히면서 변수 a값을 전달 (401p)
402p 코드
데이터 공유 방식
값 복사 전달 : 원본 수정 X
주소를 전달 : 원본 수정 O
405p - 일반 지역변수의 주소를 반환하면 안됨 -함수가 반환되면 저장공간이 회수되어 언제 다른 용도로 재활용될지 알수 없음
(정적 지역변수는 가능 - 함수가 반환된 후에도 저장공간이 계속 유지되므로 호출한 함수에서 포인터 연산을 통해 언제든지 그 변수를 이용 가능)
오... 408p 첫번째 함수에서 깨달았는데
매개변수가 포인터라면
scanf때 &쓰지 않음@!!! 왜냐면 그 자체가 주소니깐
'⚙️Computer System > C' 카테고리의 다른 글
C혼공 12, 13일차 - 응용포인터 (이중**/배열/함수/void) - 도전실전예제 영상좀 보고 해ㅇ라 (0) | 2024.02.04 |
---|---|
C혼공10일차 - 다차원 배열/ 포인터 배열 (0) | 2024.02.04 |
C 혼공일기 8일차 (문자열과 포인터/ 문자열 연산 함수) (0) | 2024.01.30 |
C혼공일기 7일차 (문자) (1) | 2024.01.27 |
C 혼공일기 5,6일차 (포인터와 배열) (0) | 2024.01.25 |