주사위의 개발일지
  • [쉽게풀어쓴C언어] 포인터 총 정리 1: 포인터란?
    2024년 02월 03일 20시 28분 05초에 업로드 된 글입니다.
    작성자: 주사위 clice
    반응형

    포인터의 의미

    변수는 컴퓨터 메모리에 저장된다

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

    바이트 단위로 주소가 있다

     

    주소가 몇 바이트인지는 컴퓨터의 메모리에 따라 다르다

    예를 들어 4바이트 컴퓨터에 저장되는 변수의 주소는 길이가 4이다

     

    char: 1바이트

    int: 4바이트

    float: 4바이트

    short: 2바이트

     

    메모리 상에

    주소 / 변수 이름 / 변수값 이 저장된다

    & i 10

    i=10;

     

    후입선출(스택 구조이기 때문이다)

    ⭐️스택은 후입 선출⭐️

     

     

     

    주소 연산자 &(앤드)

    &가 변수의 이름을 받아서 변수의 주소를 반환한다

    int i ; //변수 정의

    & i ; //변수의 주소 가져오기

    서식문자 %p사용

     

    printf(“int i의 주소: %p”, &i);

     

    주소의 크기는 하드웨어에 따라 다르다

    예시)

    32비트 컴퓨터: 4바이트

    64비트 컴퓨터: 8바이트

     

    포인터 선언

    포인터는 변수이다(그래서 포인터 변수 라고도 함)

    포인트하다(가리키다)라는 의미를 가진다 

    정수를 포인트하는 포인터

    int * p

     

     

    가리키는 데이터의 타입을 설정할 수 있다

    char *pc; 문자를 가리키는 포인터 pc

    double *pd; 실수를 가리키는 포인터 pd

     

    포인터로는 시작 주소만 알 수 있으므로

    데이터 타입을 통해 몇 바이트만큼 가져올 것인가를 알 수 있다

     

    사용 예시

    int i=100;
    int *p=&i; //포인터는 i의 주소를 가리키게 된다
     

     

     

    포인터 초기화

    절대주소를 사용하는 것은 피해야 한다

    보통 =NULL이라 초기화한다

    &연산자를 이용하여 변수의 주소를 계산해 포인터에 대입할 수 있다

     

     

    포인터를 초기화하는 방법

    char x=‘a’

    char *pc=&x;

     

    또는

     

    char *pointer=(int *)10000;

     

    포인터가 아무것도 가리키고 있지 않은 경우 NULL로 초기화한다

    int p*=NULL;

     

     

     

     

    옛날 블로그에 정리했던 내용을 다시 정리한 글입니다

    반응형
    댓글