<C> Pointer

·2024년 8월 16일
0

C

목록 보기
1/1

Pointer

Pointer는 프로그램 내에서 사용할 수 있는 데이터 유형으로 간주할 수 있다.
(char, int, double... 과 같이 데이터 유형이라고 생각하자.)

포인터는 특정 데이터 유형을 가리키는 메모리 주소를 저장하는 변수다.

int main() {
	int age = 30;
    
    printf("age's 메모리 주소 : %p\n", &age);
    return 0;
    
    // age's 메모리 주소 : 0060FF0C
    // 메모리 주소는 16진수로 표현된다. 물리적 메모리 주소
 }

printf에서 사용되는 &는 해당 변수의 메모리 주소를 가져오는 데 사용된다.

[ 코드 해석 ]
1. &age는 변수 age의 메모리 주소를 나타낸다.
2. printf("age's 메모리 주소 : %p\n", &age);는 변수 age가 저장된 메모리 주소를 출력한다.
3. %pprintf 함수에서 포인터를 출력할 때 사용되는 형식 지정자이다.

Pointer 변수 내부

inside of a pointer variable

포인터 변수를 만들 때, 실제로 물리적 메모리 주소가 필요하다.

포인터 변수를 왜 생성하는가?
➡️ 특정 변수의 메모리 주소를 저장하려고.

int main() {
	int age = 30;
    int * pAge = &age;double gpa = 3.4;
    double * pGpa = &gpa;char grade = 'A';
    char * pGrade = &grade;printf("age's 메모리 주소 : %p\n", &age);
    return 0;
    
    // age's 메모리 주소 : 0060FF0C
    // 메모리 주소는 16진수로 표현된다. 물리적 메모리 주소
 }

pAge 변수 앞에 있는 p는 포인터 변수를 의미한다.

요약

  1. & 연산자는 변수 앞에 붙혀 그 변수의 메모리 주소를 가져오는 역할을 한다.
    age 자체는 정수값을 가지고 있지만, &ageage 정수가 저장된 메모리 주소를 가리키는 포인터를 반환한다.

  2. 메모리 주소는 물리적 메모리 주소이다. (RAM)

  3. pAge 변수 앞에 있는 p는 포인터 변수를 의미한다.

profile
- 배움에는 끝이 없다.

0개의 댓글