Skip to content

Latest commit

 

History

History
135 lines (87 loc) · 1.9 KB

13.function.md

File metadata and controls

135 lines (87 loc) · 1.9 KB

함수

기본 함수

기본으로 아래처럼 타입 이름(인자){코드}로 구성되있습니다.

#include<iostream>

using namespace std;

int sum(int a, int b) {

    return a + b;
}

int main() {

    cout << sum(10, 20) << endl;
    cout << sum(40, 10) << endl;

    return 0;
}

void

타입과 리턴없이 주어진 코드만 수행하고 증발하는 함수입니다.

#include<iostream>

using namespace std;

void output() {
    cout << "text func" << endl;
}

void output_num(int a) {
    cout << "number func"<< a << endl;
}

int main() {

    output();
    output_num(10);

    return 0;
}

오버로딩

같은 함수명이지만, 자세히 보면 인자의 갯수와 타입이 다릅니다.

물론 포인터 유무도 판별합니다.

#include<iostream>

using namespace std;

int g_num = 0;

void change_num(int a) {
    g_num = 10000;
}

void change_num(int *pnum) {
    *pnum = 20000;
}


int main() {
    cout << g_num << endl;
    change_num(g_num);
    cout << g_num << endl;

    int num = 0;
    cout << num << endl;
    change_num(&num);
    cout << num << endl;

    return 0;
}

디폴트 인자

따로 지정하지 않아도 인자에서 미리 지정합니다.

#include<iostream>

using namespace std;

int default_sum(int a, int b = 10) {

    return a + b;
}


int main() {
    cout << default_sum(10) << endl;

    return 0;
}

과제

  • 과제1 : 팩토리얼 계산하는 함수 만들기

  • 과제2-(1) : 지역변수를 포인터로 이용해 업데이트하는 함수 만들기

  • 과제2-(2) : 아래 코드에서 빈칸을 채워 100을 출력하는 프로그램을 완성하기

#include<iostream>

using namespace std;

int change_score(int *pnum) {
    int c_num = 0;
 // 이 곳에 과제를 수행하십시오.
    return c_num;
}


int main() {
    int num = 0;
    cout << change_num(&num) << endl;
    return 0;
}