본문 바로가기
개발 언어 (Language)/C++

함수

by Tarake 2024. 9. 8.

함수


함수란?

함수는 특정 작업을 수행하는 코드 블록입니다. 함수는 코드의 재사용성을 높이고, 복잡한 문제를 더 관리하기 쉬운 작은 문제로 나누는 데 도움을 줍니다.

#include <iostream>

// 함수 선언
int multiply(int x, int y);

int main() {
    int result = multiply(4, 5);  // 함수 호출
    std::cout << "The result is: " << result << std::endl;
    return 0;
}

// 함수 정의
int multiply(int x, int y) {
    return x * y;
}
  • 함수의 선언 : 함수를 정의하기 전에 호출되면 오류가 발생하니 미리 컴파일러에게 함수가 어떻게 생겼는지 알린다.
  • 함수의 정의 : 함수에 어떤 내용을 담고 어떻게 동작할 것인지를 기술
  • 함수의 호출 : 정의한 함수는 호출하지 않으면 실행되지 않으므로 필요한 곳에서 함수를 호출

함수는 자료형 함수명(매개변수) 로 구성됩니다.

자료형은 반환하는 값의 자료형을 알려줍니다. 만약 반환값이 없으면 void로 지정합니다.

함수명은 변수명과 동일하게 함수를 호출하기 위해서 사용되는 이름입니다. 함수명은 주로 어떤 기능을 하는지 알기 쉽게 짓는 편이 좋습니다.

매개변수는 어떤 인자가 들어오는지 나타냅니다.

 

참조값 전달

void swapNums(int &x, int &y) {
  int z = x;
  x = y;
  y = z;
}

int main() {
  int firstNum = 10;
  int secondNum = 20;

  cout << "Before swap: " << "\n";
  cout << firstNum << secondNum << "\n";

  // Call the function, which will change the values of firstNum and secondNum
  swapNums(firstNum, secondNum);

  cout << "After swap: " << "\n";
  cout << firstNum << secondNum << "\n";

  return 0;
}

변수는 메모리 공간을 나타낸다고 설명하였습니다. 즉 변수에는 메모리 주소가 저장되어 있는데 이 주소를 매개 변수로 전달할 수 있습니다. 즉 firstNum을 데이터만 넘겼을 경우에는 함수에서 어떠한 연산을 해도 firstNum의 값은 변경이 없지만 주소 값이 전달되므로 firstNum의 데이터가 함수에서 연산이 이루어지면 연산 결과로 바뀔 수 있습니다.

 

함수 오버로딩

int myFunction(int x)
float myFunction(float x)
double myFunction(double x, double y)

위와 같이 함수는 서로 다른 매개변수를 가지고 있으면 동일한 이름을 가질 수 있습니다. 하지만 반환형은 상관이 없기 때문에 반환형만 다를경우에는 동일한 이름의 함수명을 사용할 수 없습니다.

 

출처

W3school

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

'개발 언어 (Language) > C++' 카테고리의 다른 글

제어문  (0) 2024.09.08
변수  (0) 2024.09.08
기초 구문  (0) 2024.09.08