System Hacking/Basics

C언어 포인터 개념

hanbunny 2025. 3. 21. 13:12

포인터?

메모리의 주소를 가지고 있는 변수

 

변수와 메모리

변수의 크기에 따라 차지하는 메모리 공간이 달라진다

char형 변수는 1바이트 차지

int형 변수는 4바이트 차지

float형 변수는 4바이트 차지

 

주소연산자 &

C언어에서 변수의 주소를 계산하는 연산자

변수의 이름을 받아서 변수의 주소를 반환함.

 

포인터 선언

변수의 주소를 가지고 있는 변수

포인터 변수라는 말을 쓰는데

포인터 이름은 식별자 규칙을 따름.

 

배열의 이름 = 배열의 시작주소 = 포인터 상수

 

int *p --> p주소로 가면 int(정수)값이 들어가있음

char *pc -->  pc주소로 가면 char(문자열)값이 ㅇ들어가 있음

int i = 10; // 정수형 변수 i 선언
int *p, // 포인터 변수 p 선언
p = &i; // 변수 i의 주소가 포인터 p로 대입

 

간접 참조 연산자

포인터가 가리키는 주소에 저장된 내용을 읽음

포인터를 통해 메모리에 접근

int i = 10;
int *p;
p=&i;
printf(%d ==%d\n", i, *p);
*p = 50;
printf("%d == %d\n", i, *p);