728x90
반응형
저번 포스팅에서 이어서 포인터를 이용한 call by 명령어를
같이 공부해봅시다.
call by value
- 함수에 값을 전달할 때, 전달된 값의 복사본이 함수로 전달되는 함수
- 원래 변수는 함수의 변경에 영향을 받지 않음
//Call By Value 예시
#include <iostream>
#include <string>
using namespace std;
void callByValue(int x) {
x = 100;
cout << "함수 내부에서 x: " << x << endl;
}
int main() {
int num = 10;
cout << "함수 호출 전 num: " << num << endl;
callByValue(num);
cout << "함수 호출 후 num: " << num << endl;
return 0;
}

call by reference
- 함수에 값을 전달할 때, 전달된 변수의 참조(주소)가 함수로 전달됨
- 원래 변수는 함수의 변경에 영향을 받음
//Call By Reference 예시
#include <iostream>
using namespace std;
void callByReference(int& x){
x = 100;
cout << "함수 내부에서 x: " << x << endl;
}
int main(){
int num = 10;
cout << "함수 호출 전 num: " << num << endl;
callByReference(num);
cout << "함수 호출 후 num: " << num << endl;
return 0 ;
}

- 위 두 기능의 차이는 변수가 저장된 메모리의 주소를 건들이느냐 마느냐의 차이
- call by value 같은 경우 변수의 명만 같을 뿐 메모리의 주소가 다르기 때문에 변수에 영향을 주지 못함
- call by reference 같은 경우 변수의 참조부분 주소를 사용하기 때문에 변수에 직접적인 영향을 줌
실습. 원본데이터 변경 해보기
- 입력함수와 값 증가함수를 구현하고 입력 함수로 값을 한번 입력받은 다음 값 증가 함수를 입력 함수의 세번째 인자(증가시킬 횟수) 만큼 실행하여 증가시키십시오.
- 입력 함수: call by reference를 사용하여 두 숫자와 증가시킬 횟수( 1씩 증가)를 입력 받습니다.
- 값 증가 함수 : 두 숫자를 call by reference로 전달받아, 원래 값을 각각 1씩 증가시키고 합을 출력합니다.

#include <iostream>
using namespace std;
void callByReference(int &a, int &b, int &c){
cout << "첫 번째 숫자를 입력하세요 : ";
cin >> a;
cout << "두 번째 숫자를 입력하세요 : ";
cin >> b;
cout << "값을 증가시킬 횟수를 입력하세요 : ";
cin >> c;
cout << "입력된 값 : 첫 번째 숫자 : " << a << ", 두 번째 숫자 : " << b << ", 증가 횟수 : "<< c << "\n" << endl;
}
void Inc_num(int &x, int &y, int &z){
for(int i = 0; i < z; i++){
cout << "증가 "<< i + 1 << "회차 : " << endl;
x += 1;
y += 1;
cout << "현재 값 : 첫 번째 숫자 : " << x << ", 두 번째 숫자 : " << y << "\n" << endl;
}
}
int main() {
int num1 = 0;
int num2 = 0;
int count = 0;
callByReference(num1, num2, count);
Inc_num(num1, num2, count);
}
다음 시가도 포인트 관련 함수입니다. 중요한 만큼 꼭 천천히 읽어주시길 바랍니다.
오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

과제.종합실습
동적으로 배열 할당후 입력하기
- 동적으로 배열을 조작할 수 있는 클래스를 구현하고 각 메소드 배열에 대한 초기 생성, 추가 및 값 할당, 삭제, 현재 배열 출력이 가능한 기능을 구현하고 관리 하시오.
- 초기 배열생성!
- 1을 누르면 현재 배열의 요소들 출력!
- 2를 누르면 배열을 하나 추가하고 값입력!
- 3을 누르면 배열을 하나 삭제하고 삭제된 현재 상태 배열 출력!
- 0을 누르면 관리 종료!

해답 예시는 하루코딩에서
반응형
'C++ IDE를 위한 과정' 카테고리의 다른 글
| C++ 문자열 포인터 (0) | 2025.03.13 |
|---|---|
| C++ 포인터 AND 동적배열 (0) | 2025.02.24 |
| C++ namspace (0) | 2025.02.21 |
| C++ 구조체 VS 클래스, getter setter, 상속 (0) | 2025.02.12 |
| C++ 클래스 & this pointer (0) | 2025.02.11 |