혼공단/혼공C3기
[혼공C 학습단 3기] 6주차 기본미션 포인터 내용 블로깅 하기
Ericlee
2021. 3. 18. 10:05
반응형
- 메모리의 주소
- 메모리라는 것은 우리가 데이터를 넣고 꺼내 쓰는 공간으로, 그 위치를 식별할 수 있어야 합니다.
int a; |
- 주소 연산자: &
- 주소라 하면 변수가 할당된 메모리의 시작 주소를 의미합니다.
&변수명; &a; |
- 포인터와 간접 참조 연산자: *
- 포인터가 바로 변수의 메모리 주소를 저장하는 변수입니다. 주소를 저장할 포인터도 변수처럼 선언하고 사용합니다. 선언할 때 변수 앞에 *만 붙여주면 됩니다.
자료형 * 변수명; int * pa; |
- const를 사용한 포인터
- const 예약어를 포인터에 사용하면 이는 가리키는 변수의 값을 바꿀 수 없다는 의미로, 변수에 사용하는 것과는 다른 의미를 가집니다.
- 포인터는 메모리를 사용하는 또 다른 방법이다.
- 주소 연산자 &로 변수가 할당된 메모리의 위치를 확인한다.
- 포인터로 가리키는 변수를 사용할 때 간접 참조 연산자*를 쓴다
- 주소 연산자 - 변수 앞에 분여 사용하며, 변수가 할당된 메모리의 시작 주소 값을 구한다.
int a; |
- 포인터 - 시작 주소 값을 저장하는 변수며, 가리키는 자료형을 표시하여 선언한다.
char *pc; |
- 간접 참조연산자 - 포인터에 사용하며, 포인터가 가리키는 변수를 사용한다.
*pi = 10; |
- 주소와 포인터의 차이
- 주소는 변수에 할당된 메모리 저장 공간의 시작 주소 값 자체이고, 포인터는 그 값을 저장하는 또 다른 메모리 공간입니다. 따라서 특정 변수의 주소 값은 바뀌지 않지만 포인터는 다른 주소를 대입하여 그 값을 바꿀 수 있습니다.
- 주소와 포인터의 크기
- 포인터도 저장 공간이므로 그 크기가 있습니다. 포인터의 크기는 저장할 주소의 크기에 따라 결정되는데 크기가 클수록 더 넓은 범위의 메모리를 사용할 수 있습니다.
- 포인터의 대입 규칙
- 포인터는 크기가 모두 같으므로 대입연산을 쉽게 생각할 수 있습니다. 그러나 다음 규칙에 따라 제한적으로 사용해야 합니다.
- 포인터는 가리키는 변수의 형태가 같을 때만 대입해야합니다.
- 형 변환을 사용한 포인터의 대입은 언제나 가능합니다.
- 포인터를 사용하는 이유
- 임베디드 프로그래밍을 할 때 메모리에 직접 접근하는 경우나 동적 할당한 메모리를 사용하는 경우에는 포인터가 반드시 필요합니다.
- 주소와 포인터는 상수와 변수의 차이가 있다.
- 포인터의 크기는 주소의 크기와 같다.
- 포인터에 주소를 저장할 때는 가리키는 자료형이 같아야 한다.
- 포인터의 주요 기능 중 하나는 함수 간에 효과적으로 데이터를 공유하는 것이다.
반응형