본문 바로가기

반응형
SMALL

C/개념

포인터(Pointer) .. 왜 쓸까요? (2) 이 전 글에 이어서 포인터끼리의 형변환과, 배열의 포인터, 동적할당에 대해 다뤄보도록 합시다. 배열도 자료형이기 때문에 당연히 배열을 위한 포인터 또한 존재합니다. 예제를 볼까요? int a[10]; // int [10] 자료형 변수 a, 크기는 40 바이트 int (*p)[10] = &a; // int[10] 자료형의 포인터 변수 p p의 자료형은 int(*)[10] (*p)[3] = 3; // a[3] = 3과 같음 *p[3] = 3; // a[30] = 3과 같음 오버플로우 int *pa = a; // int 자료형의 포인터 변수 pa pa[3] = 3; // a[3] = 3과 같음 변수 p는 변수 a의 주소를 담고 있습니다. 여기서 p의 크기는 포인터 변수이기 때문에 8바이트입니다. p를 통해 a.. 더보기
포인터(Pointer) .. 왜 쓸까요? (1) C 언어의 꽃 포인터(Pointer)입니다. 대학 시절 때도 포인터에 막혀서 제 학점을 후루룩 말아 잡쉈는데, 이제 피할 수 없는 시기가 와서 한번 정리를 하려고 합니다. 포인터는 왜 쓸까요? 포인터 변수는 변수의 주솟값을 받는 변수인데 과연 어디에 쓰려고 하는걸까요? 포인터 변수를 사용하는 이유를 알려면 주솟값의 존재 이유를 알면 됩니다. 우리는 인터넷에서 쇼핑을 하면 배송지에 꼭 집의 주소를 적습니다. 그 곳으로 물건을 배달하지요. 이렇듯 주소는 특정 위치를 정확히 알려주는 지표입니다. 컴퓨터에서도 주솟값은 방대한 메모리에서 해당 변수가 저장되어 있는 위치를 정확히 알려주는 역할을 합니다. 즉, 포인터 변수는 저장된 주솟값을 통해 언제든지 해당 변수에 접근할 수 있게 됩니다. 물론 수정도 가능하죠. .. 더보기

반응형
LIST