새소식

🏫 School/[23-2] 객체지향프로그래밍

[C++] 함수에 대한 기본 설명 (2)

  • -

작동 범위에 따른 변수 구분

[Local Variable = 지역변수]

- 하나의 {} 안에서 작동하는 변수
- 일반적으로 하나의 함수 안에 있으면서 해당 함수에서만 작동함
- 같은 이름을 갖는 변수를 서로 다른 함수에서 사용할 수 있음 => 같은 이름이라고 해도 다른 memory사용

[Global Variable = 광역변수]

- 전체 program에서 계속 작동하는 변수
- 함수 내에 정의하는 것이 아님
- 같은 이름을 갖는 변수를 다시 만들 수 없음

#include <iostream>
using namespace std;

int x1 = 10; // x1은 전역변수

int makedouble (int param) {
	int x2; // x2는 지역변수 
    cout << "03 : " << 	x2 << endl;
    x2 = param;
    cout << "04 : " << 	x2 << endl;
    return param*2;
}

int main () {
	cout << "01 : " << 	x1 << endl;
    x1 = makedouble (x1);
    cout << "02 : " << 	x1 << endl;
    return 0;
}

재귀함수 (Function calls itself)

- return 값에 함수 자신을 포함하고 있는 것을 의미

// 재귀 함수 예시 코드	
#include <iostream>
using namespace std;

int factorial (int n) {
	if (n==0)
    	return 1;
    else
    	return n*factorial(n-1); // factorial 함수의 return 값에 factorial 함수 본인이 포함
}

int main () {
	cout << " 0! = " << factorial(0) << endl;
    cout << " 1! = " << factorial(1) << endl;
    cout << " 6! = " << factorial(6) << endl;
    cout << " 10! = " << factorial(10) << endl;
}

Reference Variable

#include <iostream>
using namespace std;

int main()
{
    int value = 5; 
    int& ref = value; // r은 reference variable

    value = 6;
    ref = 7;   // value = 7

    cout << value; // prints 7
    ++ref;
    cout << value; // prints 8

    return 0;
}

- reference variable은 다른 어떤 변수의 별명
- 위의 코드에서 value와 ref는 동의어

// reference variable을 이용해서 변수 swap함수 짜기
#include <iostream>
using namespace std;

int swap (int& a, int& b) {
	int temp = a;
    a = b;
    b = temp;
}

int main() {
	int var1 = 5, var2 = 9;
    swap(var1, var2); // var1 = 9, var2 = 5
}
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.