C++ 참조

진경천·2023년 9월 13일
0

C++

목록 보기
22/90

포인ㅌ

#include <iostream>

using namespace std;

int main() {
	int num0 = 10;
	int& num1 = num0;		// 1, 'a' 등의 일반 변수는 참조 불가
	int* num2 = &num0;

	cout << num0 << endl;
	cout << num1 << endl;
	cout << *num2 << endl;

	cout << endl;
	num0 = 20;
	cout << num0 << endl;
	cout << num1 << endl;
	cout << *num2 << endl;

	cout << endl;
	num1 = 30;		// const int& 일 경우 값 변경이 불가함
	cout << num0 << endl;
	cout << num1 << endl;
	cout << *num2 << endl;

	cout << endl;
	*num2 = 40;
	cout << num0 << endl;
	cout << num1 << endl;
	cout << *num2 << endl;

	return 0;
}
  • 코스 실행 결과

    10
    10
    10

    20
    20
    20

    30
    30
    30

    40
    40
    40

참조자와 포인터가 가리키는 값을 변경해도 원본의 값과 원본이 참조하는 값, 포인터가 가리키는 값이 변경되는 것을 볼 수 있다.

이를 vector와 arr에도 동일하게 적용할 수 있다.

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> vec0;
	vector<int>& vec1 = vec0;
	vector<int>* vec2 = &vec0;

	vec0.push_back(1);
	vec1.push_back(2);
	vec2->push_back(3);

	for (int num : vec0)
		cout << num << endl;

	int* num0 = new int(12);
	int& num1 = *num0;

	cout << *num0 << endl;
	cout << num1 << endl;

	return 0;
}
  • 코드 실행 결과

    1
    2
    3
    12
    12

profile
어중이떠중이

0개의 댓글