6주차 강의 정리(이경훈) - aksrud/3kingOfGod GitHub Wiki

포인터(pointer or reference)

포인터란?

주소를 담는 변수.

일반 변수와 다른 점

일반 변수

value copy 값을 복사

#include <stdio.h>

int main() {
	int n = 10;
	int k = n;

	n = 100;
	printf("%d %d\n", n, k);
	return 0;
}

포인터

address copy 주소를 복사

#include <stdio.h>

int main() {
	int n = 10;
	int* k = &n;

	// n = 100;
	printf("%d %d\n", n, *k);
	return 0;
}

값 참조 and 주소 연산자

변수 앞에 &를 붙이면 그 변수의 시작 주소 포인터 변수 앞에 *를 붙이면 값 참조

#include <stdio.h>

int main() {
	char c = 10;
	double d = 5.6;

	char* p1 = &c;
	double* p2 = &d;

	printf("%d %g\n", c, d);
	printf("%d %g\n", *p1, *p2);
	printf("%p %p\n", p1, p2);
	printf("%p %p\n", &c, &d);
	printf("%p %p\n", *&c, *&d);
	return 0;
}

n중 포인터

똑같이 자료형 *(n번 해주고) 포인터의 주소를 저장 가능.

#include <stdio.h>

int main() {
	int n = 10;
	int* p = &n;
	int** pp = &p;

	printf("%d %d %d\n", n, *p, **pp);
	printf("%p %p %p\n", &n, &*p, &**pp);
	printf("%p %p %p\n", &n, p, pp);
	
	return 0;
}
⚠️ **GitHub.com Fallback** ⚠️