반응형
#include <iostream>
int main(void)
{
int val1, val2;
int result = 0;
std::cout<<"두 개의 숫자입력: ";
std:: cin >> val1 >> val2;
if (val1 < val2)
{
for (int i = val1 + 1; i < val2; i++)
result += i;
}
else {
for (int i = val2 + 1; i < val1; i++)
result += i;
}
std::cout << "두 수 사이의 정수 합:" << result << std::endl;
return 0;
}
1.c++의 모든 컴파일러는 지역변수의 선언 제한을 두지 않는다.
2.연속적인 데이터의 입력 가능
std::cin>>'변수1'>>'변수2'
이때 첫 번째와 두 번째 정수의 경계는 탭, 스페이스 바, enter키의 입력과 같은 공백에 의해 나눠진다.
3. for문의 초기화 문장 내에서 변수 선언이 가능하다.
for(int num = 0; num<10; num++){}
<배열 기반의 문자열 출력>
#include <iostream>
int main(void)
{
char name[100];
char lang[200];
std::cout<<"이름은 무엇입니까? ";
std::cin >> name;
std::cout << "좋아하는 프로그래밍 언어는 무엇인가요? ";
std::cin >> lang;
std::cout<<"내 이름은 "<<name<<"입니다.\n";
std::cout << "제일 좋아하는 언어는 "<<lang<<"입니다."<<std::endl;
return 0;
}
\n: 갹행의 역할을 한다.
<01-2 함수 오버로딩>
함수 오버로딩: 동일한 이름의 함수 정의 허용
<함수 오버로딩의 예>
함수의 오버로딩이 가능하려면 매개변수의 자료형이 다르거나 매개변수의 개수가 달라야 한다.
다음은 잘못된 오버로딩 예이다.
void MyFunc(int n){}
int MyFunc(int n){}
#include <iostream>
void MyFunc(void)
{
std::cout << "MyFunc(void) called" << std::endl;
}
void MyFunc(char c)
{
std::cout << "MyFunc(char c) called" << std::endl;
}
void MyFunc(int a, int b) {
std::cout << "MyFunc(int a, int b) called" << std::endl;
}
int main(void) {
MyFunc();
MyFunc('A');
MyFunc(12, 13);
return 0;
}
<01-3 매개변수와 디폴트 값>
int MyFuncTwo(int num1 = 5, int num2 = 7)
{
return num1 + num2;
}
"함수 호출 시 인자를 전달하지 않으면 num1에 5가, num2에 7이 전달된 것으로 함"
#include <iostream>
int Adder(int num1 = 1, int num2 = 2)
{
return num1 + num2;
}
int main(void) {
std::cout << Adder() << std::endl;
std::cout << Adder(5) << std::endl;//첫번째 매개변수에 5가 전해짐
std::cout << Adder(3, 5) << std::endl;
}
<디폴트 값은 함수의 선언 부분에만 표현하면 된다.>
매개변수의 디폴트 값 지정은 함수의 선언부에 위치시킨다.
#include <iostream>
int Adder(int num1 = 1, int num2 = 2); //선언부
int main(void) {
std::cout << Adder() << std::endl;
std::cout << Adder(5) << std::endl;//첫번째 매개변수에 5가 전해짐
std::cout << Adder(3, 5) << std::endl;
return 0;
}
int Adder(int num1, int num2)//정의부
{
return num1 + num2;
}
<부분적 디폴트 값 설정>
일부분만 디폴트 값을 지정할 수 있다.
단, 오른쪽 매개변수의 디폴트 값을 비우는 형태로는 디폴트 값을 지정할 수 없다.
int YourFunc(int num1=3, int num2=5, int num3){}
따라서 반드시 오른쪽 매개변수의 디폴트 값부터 채워야 한다.(인자를 전달하지 않는 형태의 함수 호출은 컴파일 에러로 이어진다.)