배열의 값 전달: 배열의 경우 배열의 첫번째 위치의 값이 들어있는 주소가 전달되기 때문에 원본의 값을 바꿔준다.
참조자를 이용한 전달: 실제 변수의 값 변경
#include <iostream>
using namespace std;
//일반 변수 전달
void ChangeValue(int x)
{
x = 100;
}
int main()
{
int num = 1;
cout << num <<"\n"; //1
ChangeValue(num);
cout << num <<"\n"; //1
return 0;
}
#include <iostream>
using namespace std;
//배열의 값 전달
void ChangeArrayValue(int board[], int size)
{
if (size >= 0)
board[0] = 100;
}
int main()
{
int board[5] = { 1,2,3,4,5 };
cout << board[0] << "\n"; // 1
ChangeArrayValue(board, 5);
cout << board[0] << "\n"; // 100
return 0;
}
#include <iostream>
using namespace std;
//참조 전달
void ChangeValueRef(int& x)
{
x = 100;
}
int main()
{
int num = 1;
cout << num << "\n"; // 1
ChangeValueRef(num);
cout << num << "\n"; // 100
}
숙제
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < 2 * n - 1; ++i)
{
if (i < n)
{
for (int j = 0; j < n - i - 1; ++j)
{
cout << " ";
}
for (int j = 0; j < 2 * i + 1; ++j)
{
cout << "*";
}
cout << "\n";
}
else //4
{
for (int j = 0; j < i - n + 1; ++j)
{
cout << " ";
}
//4 -> 2
//5 -> 1
//6 -> 0
for (int j = 0; j < 2 * (2 * n - 1 - i - 1) + 1; ++j)
{
cout << "*";
}
cout << "\n";
}
}
return 0;
}
2. Class 개념
헤더파일에 class 정의 & 소스파일에 class 구현
헤더파일에 중복 선언 방지
#ifndef STUDENT_H_ //STUDENT_H_가 정의되어 있지 않은 경우에만 아래 코드를 실행하라는 의미
#define STUDENT_H_ //STUDENT_H_ 정의하기
...
#endif //#ifndef 가 끝났다는 것을 알려줌