포인ㅌ
#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