포인터는 주소를 저장하는 일정한 크기의 메모리 공간이다
<간접 참조 연산자를 사용한 예>
<주소와 포인터의 특징>
주소와 포인터의 차이
주소
- 변수에 할당된 메모리 저장 공간의 시작 주소 값 자체
- '상수'
포인터
- 그 값을 저장하는 또 다른 메모리 공간
- '변수'
*즉 두 포인터가 같은 주소를 저장하는 일도 가능해짐
주소와 포인터의 크기
- 포인터의 크기는 저장할 주소의 크기에 따라 결정됨
- 포인터의 크기는 컴파일러에 따라 다를 수 있다
- 모든 주소와 포인터는 가리키는 자료형에 관계없이 크기가 같다
#include <stdio.h>
int main(void)
{
char ch;
int in;
double db;
char* pc = &ch;
int* pi = ∈
double* pd = &db;
printf("char형 변수의 주소 크기 : %d\n", sizeof(&ch));
printf("int형 변수의 주소 크기 : %d\n", sizeof(&in));
printf("double 변수의 주소 크기 : %d\n", sizeof(&db));
printf("char * 포인터의 크기 %d\n", sizeof(pc));
printf("int * 포인터의 크기 %d\n", sizeof(pi));
printf("double * 포인터의 크기 %d\n", sizeof(pd));
printf("char * 포인터 가리키는 변수의 크기 %d\n", sizeof(*pc));
printf("int * 포인터가 가리키는 변수의 크기 %d\n", sizeof(*pi));
printf("double * 포인터가 가리키는 변수의 크기 %d\n", sizeof(*pd));
return 0;
}
==> 주소의 크기와 포인터의 크기가 같다는 것을 알 수 있다
'C 언어 > [책 정리] 혼자 공부하는 C언어' 카테고리의 다른 글
전처리 지시자 (1) (0) | 2023.01.10 |
---|---|
포인터 완전 정복을 위한 포인터 이해하기 (2) (0) | 2022.12.21 |
포인터의 기본 개념 (2) (0) | 2022.12.20 |
포인터의 기본 개념 (1) (0) | 2022.12.20 |
문자를 저장하는 배열 (0) | 2022.12.12 |