-
3.2 포인터자료구조(C)/배열,구조체,포인터 2020. 7. 13. 18:09
포인터(pointer)
다른 변수의 주소를 가지고 있는 변수이다.
ex)
포인터 p가 변수 a의 주소값을 가지고 있다. int a = 100;
int *p;
p = &a;
p가 a를 가리킨다.
포인터와 관련된 연산자
& : 주소 연산자(변수의 주소를 추출한다.)
* : 간접참조 연산자(포인터가 가리키는 곳을 가리킨다.)
역참조 연산자라고도 한다.
ex)
int a; //정수형 변수
p = &a //변수의 주소를 포인터로 저장
int a = 20
*p = 200; //포인터 p가 가리키는 곳에 200을 저장한다
-> a = 200;
NULL 포인터
어떤 객체도 가리키지 않는 포인터이다.
포인터가 아무것도 가리키고 있지 않을 때는 항상 널포인터 상태로 만들어 두는 것이 좋다.
함수 매개변수로 포인터 사용
포인터는 함수의 매개변수로 전달될 수 있다.
특정한 변수를 가리키는 포인터가 함수의 매개변수로 전달되면 그 포인터를 이용하여 함수 안에서 외부 변수의 값을 변경할 수 있다.
배열과 포인터
배열을 함수의 매계변수로 전달되면 함수 안에서 배열의 내용을 변경할 수 있다.
왜냐하면 배열의 이름은 포인터 이다. 배열의 이름은 배열의 첫번째 주소를 가리키는 포인터 변수이다.
그래서 함수의 매계변수로 전달 될 때, 그 함수 안에서 배열의 내용을 변경할 수 있는 것이다.
동적 메모리
'자료구조(C) > 배열,구조체,포인터' 카테고리의 다른 글
3.4 구조체와 포인터 (0) 2020.07.17 3.3 동적 메모리 할당 (0) 2020.07.17 3.1 배열 (0) 2020.07.09