1. 포인터 관련 연산자 논리구조(&, 앰퍼센드)
주소 연산자(&, 앰퍼센드)는 변수 앞에 붙여쓰고 변수의 메모리 주소를 가져오는 연산자임.

printf 중
전자는 %d, iNum의 정수 값 자체를 출력하고
후자는 %p, iNum이 저장된 메모리의 주소를 출력한다.
2. 포인터 관련 연산자 논리구조(*, 애스터리스크)
참조 연산자(*, 애스터리스크)는 어떤 변수의 주소를 저장하는 변수를 만드는 연산자임.

1. 참조 연산자인 *을 선언한다는 것은
p_iNum이 다른 변수의 주소를 담을 수 있는 변수가 될 수 있도록 포인터 선언을 하겠다는 의미임.
따라서 위 변수가 주소를 가져오는 연산자를 붙인 변수를 값으로 가지게 되면 int* p_iNum은 iNum의 주소를 가르키는 상태가 됨.
2. 역참조로써 역할을 한다는 것은
*p_iNum의 값을 바꿔서 iNum의 주소에 있던 실제 값을 바꾼다는 의미임.
3. 지역 변수와 포인터 전달

main 함수가 실행
1. main 함수의 num에 0 값이 저장됨.
2. func1 함수가 실행된다.
func1 함수의 지역 변수인 num 변수에 20이라는 값을 담고 0을 return하고 종료함.
main 함수의 0이 저장되어 있던 num을 출력함.
3. func2 함수가 실행된다.
func2 함수의 매개변수는 애스터리스크가 선언되어 있는데, 인수로 main 함수 num의 주소값을 받아 사용하게 되어,
역참조를 할 수 있어 main 함수 num의 주소에 있는 실제 값을 20으로 바꾸고 0을 return하고 종료함.
main 함수의 20으로 바뀐 num을 출력함.
4. 0을 return하고 main 함수는 종료된다.
'C > Assignment' 카테고리의 다른 글
| 06. 간단한 프로그램 만들기 1 (4) | 2025.08.05 |
|---|---|
| 05. 함수 (3) | 2025.08.05 |
| CS study3 (1) | 2025.08.05 |
| 04. 배열 (0) | 2025.06.13 |
| 03. 반복구조 (1) | 2025.06.12 |