본문 바로가기
Language/C언어

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

by OdOp 관리자 2023. 9. 11.
반응형

포인터란??

주소를 말합니다.

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

 

포인터 간단하게 설명

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

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

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

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

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

 

포인터 사용하기

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

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

 

#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