본문 바로가기
IT 기술/C언어

C 언어 함수(매개변수, 반환값) part2_10일차

by 썬's 2023. 2. 7.

안녕하세요 보글리아입니다.

저번 시간에는 함수를 정의하고 호출하는 법을 배워 봤는데요...

이번 시간에는 함수의 매개변수와 반환값에 대한 추가설명을 드리겠습니다.

※제 수업은 이전주차에서 배운 개념을 재차 설명드리지 않습니다※

 


1. 함수 매개변수

C언어에서 함수란 일련의 명령들을 모아놓은 집합체라고 설명드렸습니다.

여기서 매개변수가 조금 헷갈리시는 분들이 계실 텐데요..ㅎㅎ

프로그램에서 특정 데이터를 사용하면, 이 데이터는 필요할 때만 사용하고 함수가 끝날 때는 함께 사라져야 합니다.

그렇기에 특정 함수가 가지고 있는 데이터를 다른 함수에 전달하려면 다소 복잡한 과정을 거쳐야 합니다.

 

하단 코드는 저번 시간에 배운 내용으로 잠시 이를 활용해 매개변수를 설명드리겠습니다.

먼저 함수는 add() 함수와 main() 함수가 있습니다. main 함수에서 선언한 value1과 value2는 main 함수에서만 사용이 가능하고 이 둘을 더하려고 합니다. 마찬가지로 add 함수에 있는 a와 b도 add 함수 내부에서만 사용이 가능합니다.

 

즉, add 함수에서 main 함수에 정의한 value1과 value2를 직접 사용할 수 없기 때문에, value1과 value2 값을 add 함수에서 사용하기 위한 매개체, 즉 매개변수가 필요합니다. 매개변수는 쉽게 말해 두 변수 사이를 연결해 주는 변수라고 보시면 됩니다. 여기서 a와 b가 매개변수입니다.

 

결과 적으로 main 함수에서 add(value1, value2) 부분은 value1이 매개체이자 매개변수인 a로 복사되고 value2는 b로 복사됩니다. 여기서 만약 value1과 value2의 순서를 바꾸면 어떻게 될까요??

순서를 바꾸면 value2는 a로 가고 value1은 b로 갑니다. 그렇기에 순서를 잘 맞춰 주셔야 합니다.

#include <stdio.h>

int add(int a, int b) // 자료형(반환형),  함수 이름,  (매개변수)
{
	int result = a + b; // 출력할 내용
	return result; // 반환값
}

int main()
{
	int value1 = 5; // a에 전달할 변수인 value1을 설정 후 전달할 값은 5
	int value2 = 7; // b에 전달한 변수인 value2를 설정 후 전달할 값은 7
	int value3 = add(value1, value2); // value1과 value2를 더한 결과 값을 반환할 value3 변수 설정

	printf("value1 + value2 = %d", value3); // 함수 add에서 반환값 출력

	return 0;
}

 


2. 함수 반환값

이제 반환값을 알아보겠습니다. 함수에서 반환값이란 함수 내에서 작업한 결과 물을 넘겨주는 역할을 합니다.

다시 하단 코드를 보겠습니다. 상단에 있는 코드를 다시 가져와 설명드리겠습니다.

 

일단 먼저 add 함수를 보시면 main 함수에서 value1과 value2를 매개변수인 a와 b로 받아 두 값을 더한 결과인 result 변수를 선언했습니다. 그리고 return 뒤에 result를 작성했습니다. return은 main함수와 같이 프로그램을 종료시키는 역할도 하지만, 특정 변수의 값을 반환하는 목적으로 사용하기도 합니다. 여기서 result가 반환값입니다.

 

반환값을 작성하실 때 주의하실 점은 반환값에도 자료형을 적어주셔야 합니다.

예를 들어 result의 자료형은 int입니다. 즉 int형의 자료형을 가지는 값을 반환하겠다는 의미입니다. 어떻게 보면 value1과 value2가 정수값이라 두 값을 더하면, 정수값이 나오니 정수형 자료형을 사용하는 게 당연해 보이지만,

나중 되면 정수와 소수를 더했을 때, 정수 부분만 반환할지, 아니면 소수점 아랫부분만 반환할지 선택지가 있을 수 있습니다. 따라서 반환값 변수 선언 시 자료형을 명시해 주셔야 합니다.

 

즉, 정리하면, add 함수는 int형 자료형을 가진 a와 b를 매개변수로 받고, 반환값은 두 매개변수 값을 더한 결과를 반환하는 함수라 보시면 됩니다.

 

마지막으로 main함수 부분에 value3을 보시면, add(value1, value2)라 나와 있습니다.

이 부분이 바로 value1과 value2 값인 5와 7이 a와 b로 복사돼 그 더한 결과 값을 result로 반환한 12가 나옵니다.

#include <stdio.h>

int add(int a, int b) // 자료형(반환형),  함수 이름,  (매개변수)
{
	int result = a + b; // 출력할 내용
	return result; // 반환값
}

int main()
{
	int value1 = 5; // a에 전달할 변수인 value1을 설정 후 전달할 값은 5
	int value2 = 7; // b에 전달한 변수인 value2를 설정 후 전달할 값은 7
	int value3 = add(value1, value2); // value1과 value2를 더한 결과 값을 반환할 value3 변수 설정

	printf("value1 + value2 = %d", value3); // 함수 add에서 반환값 출력

	return 0;
}

출력결과
출력결과


오늘은 함수의 매개변수와 반환값에 대한 추가적인 부분을 알아봤습니다.

이상으로 함수는 이만 마치겠습니다.

그럼 다음시간에는 printf 부분에 대한 추가적인 설명을 드리겠습니다.

긴 글 읽으시느라 너무너무 고생 많으셨습니다~~

댓글