34.6 연습문제 : 포인터와 주소 연산자
다음 소스 코드를 완성하여 10과 20이 각 줄에 출력되게 만드세요.
practice_pointer.c
#include <stdio.h>
int main(void) {
int* numPtr;
int num1 = 10;
int num2 = 20;
①_________________
printf("%d\n", *numPtr);
②_________________
printf("%d\n", *numPtr);
return 0;
}
실행결과
10
20
정답
① numPtr = &num1;
② numPtr = &num2;
해설
printf에서 numPtr을 역참조하여 출력했을 때 10이 나오려면 10이 저장된 변수 num1의 주소를 구해서 numPtr에 넣어주면 된다. 마찬가지로 20이 나오려면 20이 저장된 변수 num2의 주소를 구해서 numPtr에 다시 넣어주면 된다.
즉, 같은 포인터라 하더라도 어떤 메모리 주소가 들어있느냐에 따라 접근하는 장소(변수)가 달라집니다.
출처
https://dojang.io/mod/page/view.php?id=282
Author And Source
이 문제에 관하여(34.6 연습문제 : 포인터와 주소 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shuajjjjj/연습문제-포인터와-주소-연산자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)