반응형
포인터란??
주소를 말합니다.
조금 쉽게 설명을 드리겠습니다.
예를 들어 철수가 집에 살고 있다고 생각해 봅시다.
이때 철수는 변수이고 집은 포인터라고 생각하면 편할 것 같습니다.
값이 저장된 변수가 있고 각각의 변수마다 주소 즉 포인터가 있습니다.
철수와 같은 사람들도 마찬가지입니다.
사람들은 각각의 이름이 있고 그들이 살고 있는 집 즉, 거주지가 있습니다.
포인터 사용하기
선언하기 : 자료형 *포이터 이름;
할당하기: 포인터 이름 = &변수;
#include <stdio.h>
int main()
{
int* numPtr;
int num1 = 10;
printf("%p\n", &num1);
numPtr = &num1;
//numPtr = num1;은 numPtr은 int 포인터형이고 num1은 int형이라 자료형이 일치하지 않음
printf("%p\n", numPtr);
printf("%d\n", *numPtr); //역참조 연산자로 num1의 메모리 주소에 접근하여 값을 가져옴
//numPtr앞에 *를 붙이면 numPtr에 저장된 메모리 주소로 가서 값을 가져옴
return 0;
}
'int* numPtr;'과 같이 선언을 하고 'numPtr = &num1'과 같이 할당을 합니다.
변수 앞에 &을 붙이게 되면 그 변수의 주소를 나타내게 됩니다.
포인터 변수 앞에 *을 붙이게 되면 역참조를 하게 되어서 포이터 변수에 저장된 변수의 값을 읽어올 수 있습니다.
%p 같은 경우에는 메모리 주소를 출력하기 위한 서식문자입니다.
반응형
'Language > C언어' 카테고리의 다른 글
C011_배열 사용하기 (0) | 2023.09.13 |
---|---|
C010_malloc사용하기 (0) | 2023.09.12 |
C008_continue와 break (0) | 2023.09.10 |
C007_do ~ while문 (0) | 2023.09.09 |
C006_while문에 대하여 (0) | 2023.09.08 |