본문 바로가기

혼공단/혼공C3기

[혼공C 학습단 3기] 6주차 기본미션 포인터 내용 블로깅 하기

반응형

 

  • 메모리의 주소
    • 메모리라는 것은 우리가 데이터를 넣고 꺼내 쓰는 공간으로, 그 위치를 식별할 수 있어야 합니다.

int a;

  • 주소 연산자: &
    • 주소라 하면 변수가 할당된 메모리의 시작 주소를 의미합니다.

&변수명;

&a;

  • 포인터와 간접 참조 연산자: *
    • 포인터가 바로 변수의 메모리 주소를 저장하는 변수입니다. 주소를 저장할 포인터도 변수처럼 선언하고 사용합니다. 선언할 때 변수 앞에 *만 붙여주면 됩니다.

자료형 * 변수명;

int * pa;

  • const를 사용한 포인터
    • const 예약어를 포인터에 사용하면 이는 가리키는 변수의 값을 바꿀 수 없다는 의미로, 변수에 사용하는 것과는 다른 의미를 가집니다.
  • 포인터는 메모리를 사용하는 또 다른 방법이다.
  • 주소 연산자 &로 변수가 할당된 메모리의 위치를 확인한다.
  • 포인터로 가리키는 변수를 사용할 때 간접 참조 연산자*를 쓴다

 

  1. 주소 연산자 - 변수 앞에 분여 사용하며, 변수가 할당된 메모리의 시작 주소 값을 구한다.

int a; 
&a;

  1. 포인터 - 시작 주소 값을 저장하는 변수며, 가리키는 자료형을 표시하여 선언한다.

char *pc;
int *pi;
double *pd;

  1. 간접 참조연산자 - 포인터에 사용하며, 포인터가 가리키는 변수를 사용한다.

*pi = 10;

 

  • 주소와 포인터의 차이
    • 주소는 변수에 할당된 메모리 저장 공간의 시작 주소 값 자체이고, 포인터는 그 값을 저장하는 또 다른 메모리 공간입니다.  따라서 특정 변수의 주소 값은 바뀌지 않지만 포인터는 다른 주소를 대입하여 그 값을 바꿀 수 있습니다.
  • 주소와 포인터의 크기
    • 포인터도 저장 공간이므로 그 크기가 있습니다. 포인터의 크기는 저장할 주소의 크기에 따라 결정되는데 크기가 클수록 더 넓은 범위의 메모리를 사용할 수 있습니다.
  • 포인터의 대입 규칙
    • 포인터는 크기가 모두 같으므로 대입연산을 쉽게 생각할 수 있습니다. 그러나 다음 규칙에 따라 제한적으로 사용해야 합니다.
      • 포인터는 가리키는 변수의 형태가 같을 때만 대입해야합니다.
      • 형 변환을 사용한 포인터의 대입은 언제나 가능합니다.
  • 포인터를 사용하는 이유
    • 임베디드 프로그래밍을 할 때 메모리에 직접 접근하는 경우나 동적 할당한 메모리를 사용하는 경우에는 포인터가 반드시 필요합니다.
  • 주소와 포인터는 상수와 변수의 차이가 있다.
  • 포인터의 크기는 주소의 크기와 같다.
  • 포인터에 주소를 저장할 때는 가리키는 자료형이 같아야 한다.
  • 포인터의 주요 기능 중 하나는 함수 간에 효과적으로 데이터를 공유하는 것이다.

 

반응형