본문 바로가기
기계공학부 시절의 기록/C++일기

1.5 함수 활용

by juhyeonglee 2021. 5. 2.
728x90
반응형

 

 

제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요!

 


 

함수       function : 복잡한 식을 내장시켜 여러번 찍어쓰기에 유용

리턴값    return values : 함수의 출력값, 반환값

매개변수 parameters : 함수의 매개변수

인자       arguments : 매개변수에 input되는 인자

 

# 함수만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
int addTwoNumbers(int num_a, int num_b)
{
    int sum = num_a + num_b;
 
    return sum;
}
 
int main()
{
    cout << 1 + 2 << endl;
    cout << addTwoNumbers(12<< endl;
    
    return 0;
}
cs

함수 int addTwoNumbers(int num_a, int num_b)에서

addTwoNumbers(12) 이때의 1과 2는 각각 매개변수로서 함수의 입력값인 int num_a, int num_b (parameter)에 들어가는 인자(argument)이다.

함수 출력으로 sum값을 반환하며 함수를 종료한다.

 

만약 아래처럼 return 밑에 다시 sum을 새로운 값으로 할당해도 return을 본 컴파일러는 바로 함수바깥으로 나가므로 영향을 받지 않는다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int addTwoNumbers(int num_a, int num_b)
{
    int sum = num_a + num_b;
 
    return sum;
 
    sum = num_a * num_b;
}
 
int main()
{
    cout << 1 + 2 << endl;
    cout << addTwoNumbers(12<< endl;
    
    return 0
 }
cs

 

# 내부작동원리 알아보는 방법 : 로컬디버깅

로컬 디버깅 방법

 

# 출력 없이 기능만 수행하는 함수 : void함수 : 출력할 자료가 없으므로

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
void PrintHellowWorld(void)
{
    cout << "Hellow world!" << endl;
}
 
int main()
{
    PrintHellowWorld();
    
    return 0;
 }
cs
위 코드의 경우 함수의 출력자료형에 int가 아닌 void를 적어 출력자료형이 없음을 기술한다.

 

# 함수 안에 함수를 불러올 수 있다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
void PrintHellowWorld(void)
{
    cout << "Hellow world!" << endl;
}
 
void MultiplyTwoNumbers(int num_a, int num_b)
{
    PrintHellowWorld();
}
 
int main()
{
    MultiplyTwoNumbers(1,2);
    
    return 0;
 }
 
cs

하지만 함수 안에 함수를 정의하는 것은 문법적으로 불가하다.

관련 함수명을 한번에 변경하고 싶다면

 

# 연습문제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//사용자로부터 두개의 숫자를 여러번 입력받아 덧셈해 결과를 출력하는 코드 작성
 
#include <iostream>
 
using namespace std;
 
int AddTwoNum(int a, int b)
{
    int sum = a + b;
 
    return sum;
}
 
int main()
{
    int x = 0;
    int y = 0;
    int z = 0;
    int w = 0;
 
    cout << "Before your input, x=y=z=w=" << x << endl;
 
    cin >> x >> y;
    cout << AddTwoNum(x, y) << endl;
 
    cin >> z >> w;
    cout << AddTwoNum(z, w) << endl;
 
    return 0;
 }
cs

 

 

 


 

출처)

홍정모의 따배씨++

www.youtube.com/playlist?list=PLNfg4W25Tapw5Yx4yuExHNybBIUk68aNz

 

 

좋은 강의에 너무나 감사하다.

이전에는 그냥 무작정 따라썼던 코드들을 한줄한줄 이해하며 공부할 수 있다.

언젠가 어느 언어든 자신감이 있는 코드마스터가 될 것이다.

 

데이터가 인간을 대신해 일을 하게하고

데이터를 제어해 로봇을 제어하고 싶다.

 

728x90
반응형

댓글