Programming/C++

c++ call-by-reference , 열혈c++ Chapter2 문제1, 문제3, 문제02-2

fishersheep 2021. 8. 15. 23:53
반응형

call-by-reference

#include <iostream>
using namespace std;

void swap(int& ref1, int& ref2)
{
	int temp = ref1;
	ref1 = ref2;
	ref2 = temp;
}

int main()
{
	int val1 = 10;
	int val2 = 20;

	swap(val1, val2);
	cout << val1 << endl;
	cout << val2 << endl;

	return 0;
}

열혈c++ Chapter2 문제1

#include <iostream>
using namespace std;

void add(int& ref)
{
	ref += 1;
}

void change(int& ref2)
{
	ref2 *= -1;
}

int main()
{
	int x=10;

	add(x);
	cout << x << endl;

	change(x);
	cout << x << endl;

	return 0;
}

문제3

#include <iostream>
using namespace std;

void SwapPointer(int* ptr1, int* ptr2)
{
	int temp;
	temp = *ptr1;
	*ptr1 = *ptr2;
	*ptr2 = temp;
}


int main()
{
	int num1 = 5;
	int* ptr1 = &num1;

	int num2 = 10;
	int* ptr2 = &num2;

	SwapPointer(ptr1, ptr2);

	cout << *ptr1 << endl;
	cout << *ptr2 << endl;

	return 0;
}

문제02-2

#include <iostream>
using namespace std;

int main()
{
	const int num = 12;
	const int* ptr = &num;
	const int* (&ref) = ptr;

	cout << *ptr << endl;
	cout << *ref << endl;

	return 0;
}
반응형