프로그래밍 문법/c++

함수에서 배열호출시 메모리참조, 벡터호출시 값참조

씩씩한 IT블로그 2020. 6. 22. 21:41
반응형

c++에선 함수에서 호출시

1. 배열은 메모리참조

2. 벡터는 값참조를 한다

1. 소스코드

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <string>

#define max pow(2,31)-1

using namespace std;

void vectorFuc(vector<int> v) {
	for (int i = 0; i < 10; i++) {
		v[i] = i;
	}
	return;
}

void arrFuc(int *a) {
	for (int i = 0; i < 10; i++) {
		a[i] = i;
	}
	return;
}

int main() {	
	vector<int> v(10);
	int arr[10] = { 0, };
	
	vectorFuc(v); //call by value
	arrFuc(arr); //call by reference

	for (int i = 0; i < 10; i++) {
		cout << v[i] << " ";
	}
	cout << endl;
	for (int i = 0; i < 10; i++) {
		cout << arr[i] << " ";
	}
	
}

 

<output>

더보기

0 0 0 0 0 0 0 0 0 0 0

1 2 3 4 5 6 7 8 9

반응형