주사위의 개발일지
  • [쉽게풀어쓴C언어] 포인터 총 정리 3: 포인터 연산과 주의할 점
    2024년 02월 03일 20시 31분 12초에 업로드 된 글입니다.
    작성자: 주사위 clice
    반응형

    포인터의 연산

     

    포인터의 사칙연산은 덧셈, 뺄셈만 가능하다

    (나눗셈, 곱셈 불가)

     

     

    덧셈과 뺄셈 연산 + -

    바이트 단위만큼 증가한다

    자료형의 크기가 s일때 포인터에 정수 n을 더하면 포인터 값은 s*n만큼 증가된다

     

    단위 증가하는 값

    char 1

    short 2 

    int 4

    float 4

    double 8

    int a=10;

     

    예시*

    int *p;

    p=&

    p+1

     

    중요

    v=*p++

    p가 가리키는 값을 v에 대입한 후에 p를 증가한다

     

    v=(*p)++

    p가 가리키는 값을 v에 대입한 후에 p가 가리키는 값을 증가한다

     

    v=*++p

    p를 증가시킨 후에 p가 가리키는 값을 v에 대입한다

     

    v=++*p

    p가 가리키는 값을 가져온 후에 그 값을 증가하여 v에 대입한다

     

    네가지를 잘 구별해야 한다

    하지만

    전위 증감자 > 포인터 > 후위증감자

    를 기억하고 있다면 구분하는 것은 별로 어렵지 않다

     

     

     

    포인터의 형변환

     

    명시적으로 포인터의 타입을 변경 할 수가 있다

     

    예를 들어 

     

    double age=12;

    double *ex1=&age;

    int *ex2;

    일때 ex2가 가리키는 값을 ex1과 똑같이 하고 싶으면 

    자료형이 다르므로 

    int *ex2=(int *)ex1;

    이렇게 해준다

     

    double age=12;
    
    double *ex1=&age;
    
    int *ex2;
    
    int *ex2=(int *)ex1;
     

     

     

     

    주의할 점 

    초기화 하기

    안 그러면 쓰레기 값을 가지게 된다

    보통 NULL을 이용한다

     

     

    포인터 타입과 변수의 타임은 일치해야 한다

     

     

     

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

    int p*=NULL;

     

     

     

     

     

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

     
    반응형
    댓글