Language/C언어

C009_포인터에 대해(간단히)

OdOp 관리자 2023. 9. 11. 10:57
반응형

포인터란??

주소를 말합니다.

조금 쉽게 설명을 드리겠습니다. 

 

포인터 간단하게 설명

예를 들어 철수가 집에 살고 있다고 생각해 봅시다. 

이때 철수는 변수이고 집은 포인터라고 생각하면 편할 것 같습니다. 

값이 저장된 변수가 있고 각각의 변수마다 주소 즉 포인터가 있습니다. 

철수와 같은 사람들도 마찬가지입니다. 

사람들은 각각의 이름이 있고 그들이 살고 있는 집 즉, 거주지가 있습니다. 

 

포인터 사용하기

선언하기 : 자료형 *포이터 이름;

할당하기: 포인터 이름 = &변수;

 

#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 같은 경우에는 메모리 주소를 출력하기 위한 서식문자입니다.

반응형