본문 바로가기

개발공부(C, C++)

따배씨(따라 배우는 C언어_홍정모) Chapter9

CHAPTER 9 함수

9.12 포인터의 작동 원리

포인터 변수에 저장되는 값은 다른 변수의 주소이다. 직접적으로 데이터를 저장하기 보다는 다른 메모리 공간이나 그 공간에 저장되어 있는 데이터(또는 객체 object)를 간접적으로 가리키는(point) 역할을 한다.

int* a_ptr = &a; 처럼 *(asterisk) 를 이용해 주소를 저장하는 변수를 만들어 이용. 이 변수는 x86 에서는 4바이트, x64 에서는 8바이트다.

9.15 NULL 포인터와 런타임 에러

어떤 포인터에 어떤 주소를 넣을지 말지를 런타임에 결정하는 경우, 조건에 따라 포인터에 아무런 주소도 초기화 하지 못하면 문제가 생길 수 있다. 그래서 C 에서는 NULL, C++ 에서는 nullptr 이라는 null 값을 포인터를 생성할 때 초기화 해준다.

9.18 포인터형 매개변수

void swap(int* u, int* v) // 주소를 인자로 받아 포인터를 만듦. (int* u = &a; 의 모양)
{
  temp = *u;
  *u = *v;
  *v = temp;
}

a = 123;
b = 456;
swap(&a, &b);