포인터란?
포인터는 포인터 변수를 줄여서 말하는 걸로 영어 단어(pointer)그대로 무엇을 가르킨다는 뜻입니다.
포인터 변수란 일반적인 변수를 저장하는 것이 아니라 해당변수가 들어있는 주소의 값을 저장 하는 것을 말한다.예를 들어 일반변수는 a라는 이름으로 100을 저장한다고 하는 반면 포인터 변수는 a라는 변수가 메모리에 위치하는 주소를 알려주는 것이다.
포인터의 선언방법
포인터의 선언은 간단하다. 선언 할 때 변수이름 앞에 * 기호를 넣어 주는게 전부이다.
-인반 변수 : 타임 변수의 이름
-포인터 변수 : 타입 *포인터의 이름
예)일반변수 : int a; , 포인터 변수 : int *input;
포인터를 선언하기만 하면 그 안에는 아무의미도 없는 쓰레기 값이 들어가게 된다.
그래서 포인터 변수에다가 변수의 주소를 지정 해주어야한다. 변수의 주소를 지정 하는 방법은 지정할 변수 앞에다가 & 기호를 넣어주면 된다.
포인터 변수에 값 넣기 : 포인터 변수 = &변수
예)input = &a;
백문이 불여일견 이라고 그림으로 나타내면 이러하다.
-a의 값 : 3
-a의 주소 값 : 4832
-*p의 값 : 3
-p의 값 : 4832
포인터를 쓰는이유& 활용도
포인터를 사용함으로써 복사본을 만들지 않고 주소만 알려줌으로써 용량 및 처리시간에서 이득을 볼 수 있습니다.
그래서 메모리가 한정적이거나 처리시간이 중요한 시스템에서 사용할 경우 도움이 됩니다.
-예를들어 배열을 선언할때 배열이 a[100000]와 같이 거대한 량의 자료를 저장할때 포인터를 사용 하여 필요한 만큼의 배열의 량을 받아서 메모리를 비효율적으로 안써도 되게 합니다.
'C언어 > 보고서' 카테고리의 다른 글
C언어 :: 구조체 ( Struct ) (0) | 2015.05.11 |
---|---|
C 언어 :: 함수호출 Call by Reference (0) | 2015.04.15 |
C언어 :: malloc 함수를 이용한 동적할당 (1) | 2015.04.13 |
C언어 :: 배열의 확장 2차원 배열 !! (0) | 2015.04.12 |
C언어 :: 배열이란 무엇일까?? (0) | 2015.04.12 |
WRITTEN BY