C언어의 포인터란?

김준경·2022년 6월 8일
0

포인터란 ?

물리적인 메모리 공간에 접근하여 저장된 변수의 값이나 할당된 주소를 변경할 수 있는 연산자이다.

포인터의 특징

모든 포인터의 크기는 자료형에 관계없이 모두 16비트이다.

포인터 변수의 선언은 편수 앞에 '*' (Asterisk)를 붙여 선언한다.

포인터 변수를 초기화하는 방법에는 두가지가 있다. '&'(엔퍼센트)와 '*'(에스터리스크)를 사용하는 방법이다.

'&'는 주소를 의미하고, '*'는 값을 의미한다고 한다.

C언어 선생님께서는 메모리에는 레벨이 있고, 주소값이 저장된 레벨과
값이 저장된 레벨은 서로 달라서 '*'나'&'를 통해서만 서로 상호간 값을 주고받을 수
있다고 알기쉽게 설명해주셨다.

포인터의 주소를 출력할때는 %p, 그 외의 자료형 값을 출력할 때에는 그 자료형에 맞는 연산자를 사용한다(%d, %lf등...)

예를 들어,

int num=100; //int 형 변수 선언&초기화
int *numPtr; //포인터 변수 선언
numPtr=# //포인터 변수 numPtr에 num의 주소 할당

이라 한다면, int 형 변수 num의 값 100이 담겨있는 주소를 numPtr에 넣는다는 의미이다.

int num=100; 
int *numPtr;
*numPtr=num; //numPtr에 num의 값 저장.

이라 하면, 포인터 변수 numPtr에는 num의 값 100이 들어간다.

상수 포인터와 void 포인터도 있는데, 상수 포인터는 하나의 값으로 초기화 하면, 그 값을 바꿀수 없는 포인터이고

void 포인터는 주로 함수 입력에 많이 사용하는데, 강제형변환을 통에 값을 넣을 수 있다고 한다.

profile
프론트엔드개발자가될래요

0개의 댓글