[C++] 13. 포인터변수

2022. 5. 30. 21:45코딩 1막 <C++개념편>

728x90

포인터변수 유명한 밈짤

#include <iostream>

using namespace std;

void main()
{
	int num = 10;

	// 포인터변수 : 주소를 담는 변수
	cout << num << endl;
	cout << &num << endl;
	cout << *&num << endl;		// 역참조(주소 안의 값)

	//포인터변수의 선언 : 데이터 타입* 변수명;
	int* numPtr;
	numPtr = &num;
	cout << numPtr << endl;
	cout << &numPtr << endl;
	cout << *numPtr << endl;
}

//call by value : 값에 의한 참조
void Swap(int inputA, int inputB)
{
	int temp; // 빈통만들기
	temp = inputA;	// A를 빈통에 넣기
	inputA = inputB; // B를 A에 넣기
	inputB = temp;	// 빈통에 든 A를 B에 넣기
}

//call by address : 주소에 의한 참조
void PtrSwap(int* aPtr, int* bPtr)
{
	int temp;
	temp = *aPtr;
	*aPtr = *bPtr;
	*bPtr = temp;
}

void main()
{
	int numberA = 10;
	int numberB = 30;

	cout << numberA << "," << numberB << endl;
	// Swap(numberA, numberB);
	PtrSwap(&numberA, &numberB);
	cout << numberA << "," << numberB << endl;
}

/*
	int num = 10;

	// 포인터변수 선언
	// 포인터변수는 주소를 담는 변수
	//[문법] 데이터타입* 변수명;
	int* numPtr;
	// 변수명 앞에 &가 붙으면 그 변수의 주소를 말함
	numPtr = &num;

	cout << "일반 변수 num의 값 : " << num << endl;
	cout << "일반 변수 num의 주소 : " << &num << endl;
	cout << "포인터 변수 numPtr의 값 : " << numPtr << endl;
	cout << "포인터 변수 numPtr의 주소 : " << &numPtr << endl;

	cout << "-----------------------------------" << endl;
	// 주소안에 값을 가져오는 연산자 *
	// 주소 앞에 *을 붙이면 그 주소 속에 있는 값을 가져온다.
	cout << "일반 변수 num의 값 : " << num << endl;
	cout << "일반 변수 num의 주소 : " << &num << endl;
	cout << "일반 변수 num의 주소안에 있는 값 : " << *&num << endl;
	cout << *numPtr << endl;
	*/
728x90