반응형
1. 함수의 기본 구조
C++ 함수는 다음과 같은 구조를 가집니다.
반환형 함수이름(매개변수) {
// 함수 내용
return 반환값;
}
함수 선언과 정의
C++에서 함수를 사용하려면 선언(declaration)과 정의(definition)가 필요합니다.
- 함수 선언: 함수의 원형(prototype)을 정의하며, 반환형과 매개변수를 명시합니다.
- 함수 정의: 함수의 실제 동작을 구현합니다.
예제:
#include <iostream>
using namespace std;
// 함수 선언
int add(int a, int b);
int main() {
int result = add(3, 5); // 함수 호출
cout << "결과: " << result << endl;
return 0;
}
// 함수 정의
int add(int a, int b) {
return a + b; // 반환 값
}
결과: 8
위 코드에서 add 함수는 두 개의 정수를 받아 합을 반환합니다.
2. 반환 값(return value)
함수는 특정 작업을 수행한 후 값을 반환할 수 있습니다. return 키워드를 사용하여 값을 돌려줄 수 있으며, 반환형에 따라 다양한 값이 반환될 수 있습니다.
반환 값이 있는 함수
#include <iostream>
using namespace std;
// 정수형 반환 함수
int multiply(int a, int b) {
return a * b;
}
int main() {
int result = multiply(4, 6);
cout << "곱셈 결과: " << result << endl;
return 0;
}
곱셈 결과: 24
반환 값이 없는 함수 (void 함수)
반환할 값이 없는 경우 void 키워드를 사용합니다.
#include <iostream>
using namespace std;
// void 함수
void greet() {
cout << "안녕하세요!" << endl;
}
int main() {
greet(); // 함수 호출
return 0;
}
안녕하세요!
3. 다양한 반환형 사용
double 반환
#include <iostream>
using namespace std;
double divide(double a, double b) {
return a / b;
}
int main() {
cout << "나눗셈 결과: " << divide(10.0, 2.0) << endl;
return 0;
}
나눗셈 결과: 5
string 반환
#include <iostream>
#include <string>
using namespace std;
string getGreeting(string name) {
return "Hello, " + name + "!";
}
int main() {
cout << getGreeting("Alice") << endl;
return 0;
}
Hello, Alice!
배열(포인터) 반환
함수에서 배열을 반환하는 경우, 배열의 주소를 반환해야 합니다.
#include <iostream>
using namespace std;
int* createArray() {
static int arr[3] = {1, 2, 3};
return arr;
}
int main() {
int* ptr = createArray();
cout << "배열 첫 번째 요소: " << ptr[0] << endl;
return 0;
}
배열 첫 번째 요소: 1
⚠️ static 키워드를 사용해야 함수 종료 후에도 배열이 유지됩니다.
4. return의 다양한 활용
조건에 따른 반환
#include <iostream>
using namespace std;
int absolute(int num) {
if (num < 0) {
return -num;
}
return num;
}
int main() {
cout << "절댓값: " << absolute(-10) << endl;
return 0;
}
절댓값: 10
return으로 함수 종료
#include <iostream>
using namespace std;
void checkNumber(int num) {
if (num < 0) {
cout << "음수입니다." << endl;
return; // 함수 종료
}
cout << "양수 또는 0입니다." << endl;
}
int main() {
checkNumber(-5);
checkNumber(10);
return 0;
}
음수입니다.
양수 또는 0입니다.
[c++] 7. define & 하드코딩
C++을 포함한 프로그래밍에서는 유지보수성과 가독성을 높이기 위해 코드의 가변적인 값을 효율적으로 관리하는 것이 중요합니다. 이 과정에서 #define과 같은 매크로를 활용할 수 있으며, 반대로
clarelee.tistory.com
반응형
'Jaden's spectrum > 📂 Programming Languages' 카테고리의 다른 글
[c++] 10. callByValue & callByReference (0) | 2025.03.18 |
---|---|
[c++] 9. 포인터 & 어드레스 연산자 (0) | 2025.03.18 |
[c++] 7. define & 하드코딩 (0) | 2025.03.17 |
[C++] 6. 배열 (+다중 배열) (0) | 2025.03.17 |
[C++] 5. 반복문 (for & while) (0) | 2025.03.16 |