윤성우의 열혈 C 프로그래밍 - 포인터의 이해[12-1]

Yumin Jung·2023년 7월 20일
0

12-1-1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int num = 10;
	int* ptr1 = &num;
	int* ptr2 = ptr1;

	(*ptr1)++;
	(*ptr2)++;
	printf("%d\n", num);
	return 0;
}

포인터 int형 변수 ptr2는 ptr1 변수가 가지고 있는 num의 주소값을 가지기 때문에, 똑같이 변수 num을 가리킨다.

최종적으로 변수 num값을 출력하면 12가 출력된다.

12-1-2

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int num1 = 10;
	int num2 = 20;

	int* ptr1 = &num1;
	int* ptr2 = &num2;

	(*ptr1) +=10;
	(*ptr2) -=10;

	ptr1 = &num2;
	ptr2 = &num1;

	printf("%d 와 %d", *ptr1, *ptr2);
}

해설지에는 나처럼 아예 코드로 ptr1과 ptr2가 가리키는 대상을 직접적으로 바꾸지 않았고,
int형 포인터 변수 temp를 선언하여

temp=ptr1;
ptr1=ptr2;
ptr2=temp;

이렇게 나타내었다.

profile
문과를 정말로 존중해

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 유익한 글이었습니다.

답글 달기