c++

11월 4일 함수와 레퍼런스(정리 중)

송시혁 2013. 11. 4. 13:33

이 코드에서 핵심적으로 말하고자 하는 것은 함수의 인자가 3종류이며, 그에 따른 각각의 

특성이다.


#include <iostream>
using namespace std;
int TestFunc1(int a);//일반 변수형 인자
int TestFunc2(int &a);//레퍼런스(참조)인자
int TestFunc3(int *a);//포인터 인자

int main()
{
  int b=200;
  int &r_b=b;//b와 같은 주소를 지니게 된다. 
  
  cout << "b= " << b <<endl;
  TestFunc1(b);//일반 변수형 인자라서 200, 200, a=100이 출력된다.
  cout << "b= " << b <<endl;//200출력
  TestFunc1(999);//999가 출력되고 100이 출력된다.

  cout << "**************************** " << endl;
  TestFunc2(r_b);//레퍼런스 변수로서 지금 b가 200이므로 200이 출력 그리고 777출력
  cout << "b = " << b << endl;//777이 출력된다.

  cout << "***************************** " <<endl;
  TestFunc3(&b);//777, 999가 출력
  cout << "b= " << b << endl; 999출력

  return 0;
}

int TestFunc1(int a)//
{
  cout << "a= " << a <<endl;
  a=100;
  cout << "a= " << a << endl;
  return 0;
}

int TestFunc2(int &a)
{
  cout << "a= " << a <<endl;
  a=777;
  cout << "a= " << a << endl;
  return 0;
}

int TestFunc3(int *a)
{
  cout << "*a= " << *a <<endl;
  *a=999;
  cout << "*a= " << *a << endl;
  return 0;
}