Cworkspace

POINTER

haerangssa 2024. 7. 4. 15:33

포인터 기본 개념

  • 포인터 변수:  포인터의 값으로 메모리 주소를 저장하기 위해 선언됨.
  • 변수의 주소는 해당 변수에 할당된 첫째 바이트의 주소임. // 첫번째로부터 4개(4byte)
  • 포인터를 통한 값 참조는 간접 참조라고 함. // 직접 참조는 cout<<변수<<endl; 
  • 포인터는 사용되기 전에 선언되어야 함. // 선언 이후부터 주소를 할당할 수 있음.
dataType* pVarName; //이런식으로 ㅇㅇ.

    포인터 선언 이후부터 주소를 할당할 수 있음.

 

  • 포인터는 가리키고자 하는 변수의 유형과 같아야 함. 
int area=1;
double* pArea=&area; //잘못된 구문. area는 int형인데 double형 포인터 변수를 이용함.

 

  • 포인터에서 대입 연산자를 사용할 수 있음.
int x=5, y=6;
int* pX = &x;
int* pY = &y;

cout<<"x: "<< x << "pX: "<< pX << endl; //x는 변수 안의 정수값 5 / pX는 x변수의 주소.
cout<<"y: "<< y << "pY: "<< pY << endl; //y는 변수 안의 정수값 6 / pY는 y변수의 주소.

pX = pY; // pY안의 y주소를 pX가 가리키게 하라
cout<<"x: "<< x << "pX: "<< pX << endl; //x는 변수 안의 정수값 5 / pX는 x변수의 주소.
cout<<"y: "<< y << "pY: "<< pY << endl; //y는 변수 안의 정수값 6 / pY는 y변수의 주소.
int x=5, y=6;
int* pX = &x;
int* pY = &y;

cout<<"x: "<< x << "pX: "<< pX << endl; //x는 변수 안의 정수값 5 / pX는 x변수의 주소.
cout<<"y: "<< y << "pY: "<< pY << endl; //y는 변수 안의 정수값 6 / pY는 y변수의 주소.

*pX = *pY; // x값에 y를 넣어라
cout<<"x: "<< x << "pX: "<< pX << endl; //x는 변수 안의 바뀐 정수값 6 / pX는 x변수의 주소.
cout<<"y: "<< y << "pY: "<< pY << endl; //y는 변수 안의 정수값 6 / pY는 y변수의 주소.

연산자

  • & 주소 연산자

        &count는 count의 주소를 의미함.

  • * 역참조 연산자

        * pCount는 pCount 포인터 변수 가리키는 위치에 저장된 값을 의미. 

#include<iostream>
using namespace std;

int main(){
	int count=5;
        int* pCount = &count; // pCount포인터 변수에는 count변수의 주소가 저장되어 있음.
}

 

 

'Cworkspace' 카테고리의 다른 글

급해서 먼저 정리하는 - 객체지향과 클래스  (0) 2024.04.03