카테고리 없음
C++ 2. 참조자
sooom13579
2022. 4. 25. 16:46
C언어에서는 어떤 변수를 가리킬때 반드시 포인터 사용, C++에서는 참조자라는 방식을 사용!
#include <iostream>
int change_val(int *p) {
*p = 3;
return 0;
}
int main() {
int number = 5;
std::cout << number << std::endl;
change_val(&number);
std::cout << number << std::endl;
}
결과 값 : 5
3
#include <iostream>
int main() {
int a = 3;
int& another_a = a; //another_a는 a의 참조자!
another_a = 5;
std::cout << "a : " << a << std::endl;
std::cout << "another_a : " << another_a << std::endl;
return 0;
}
결과값 : a : 5
another_a : 5
여기서 int & 참조자이름 = a; 는 another_a는 a의 참조자 임을 공표하는 일..!
그러므로 another_a = a는 같아짐 그래서 another_a에 5대입하면 a도 5가 됨
int& another_a = a;
참조자는 처음에 누구의 별명이 될것인지 지정해야 함
참조자가 한번 별명이 되면 절대 다른 이의 별명이 되지 못함
another_a를 위해 메모리 공간 할당이 불필요 --> a로 바꿔치기 하면 되니까!!
#include <iostream>
int change_val(int &p) {
p = 3;
return 0;
}
int main() {
int number = 5;
std::cout << number << std::endl;
change_val(number);
std::cout << number << std::endl;
}
실행결과
5
3
#include <iostream>
int change_val(int &p) {
p = 3;
return 0;
}
int main() {
int number = 5;
std::cout << number << std::endl;
change_val(number);
std::cout << number << std::endl;
}
change_val(int &p) 와 같이 함수가 참조자를 받게 하였음...!
int& p = number 가 실행된다고 생각하면 됨.
- 리터럴(literal): 소스 코드 상에서 고정된 값을 가지는 것
