포인터 기본 개념
- 포인터 변수: 포인터의 값으로 메모리 주소를 저장하기 위해 선언됨.
- 변수의 주소는 해당 변수에 할당된 첫째 바이트의 주소임. // 첫번째로부터 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 |
---|