#include <iostream>
using namespace std;
void main()
{
// 삼항 연산자란?
// 피 연산자가 3개인 연산자
/*
피연산자1 ? 피연산자2 : 피연산자3
피연산자1 : 조건을 받는다.
피연산자2 : 조건이 참일 경우 수행하는 코드 작성
피연산자3 : 조건이 거짓일 경우 수행하는 코드 작성
*/
// 최대값 구하기
int iA = 0, iB = 0, iRes = 0;
cin >> iA >> iB;
//if (iA > iB)
// iRes = iA;
//else
// iRes = iB;
iRes = (iA > iB) ? iA : iB;
cout << "최대 값: " << iRes << endl;
}
#include <iostream>
using namespace std;
// int _a = iA;
// int _b = iB;
int Add(int _a, int _b)
{
int iRes = 0;
iRes = _a + _b;
return iRes;
}
void main()
{
// 함수
// Input이 있으면 Output이 있는 것.
// 수학적인 의미의 함수로는 y = f(x)가 있다!
// -> x로 값을 주면 기능이 작동하여 y라는 결과를 도출해준다.
// -> x == Input, y == Output
// f : Function의 약자로 기능이라는 뜻을 가진다.
// 결과적으로 프로그래밍에서 함수를 구현했다 라는 말은
// 기능을 구현했다 라는 말과 같다.
// 함수를 사용하는 이유
// 함수는 사용자가 한번 정의하면 언제 어디서든 가져다 사용할 수 있다!
// -> 재사용성
// 함수의 유형 4가지
// ##1. Input이 있고, Output이 있는 유형
// -> y = f(x), 공장 등
// ##2. Input이 있고, Output이 없는 유형
// -> srand( 시간 ), system( 문자열 )
// ##3. Input이 없고, Output이 있는 유형
// -> iA = rand()
// ##4. Input이 없고, Output이 없는 유형
// main 함수
// 함수의 형태
/*
반환타입 함수이름( 매개변수/인자/파라미터 )
{ // 여기부터
기능 구현
} // 여기까지
반환 타입 : 함수를 수행 후 얻어진 결과를 내보낼 때 사용한다.
결과는 고정된 값이 아니기 때문에 타입만 명시하여 어떤 데이터의 종류를 반환 것인지 명시한다.
// -> int : int형 데이터를 반환하겠다!
// -> void : 반환할 값이 없을 경우 사용한다.
함수 이름 : 함수의 이름이다. 함수가 수행하는 이름으로 지어주자!
매개 변수 : 함수를 수행하는데 필요한 데이터를 명시할 수 있다!
필요한 데이터가 여러개일 경우 , 를 이용하여 여러개를 명시할 수 있다!
단, 각 데이터마다 타입을 명시해주어야 한다.
// -> int형이 2개 필요하다! => (int _a, int _b)
기능 구현 : 함수의 기능이 구현된 부분이다!
*/
// 함수 호출(함수 콜)
// 만들어 놓은 함수를 호출할 때는
// 함수 이름 + 함수 호출 연산자를 사용하면 된다.
// 매개 변수가 void 또는 비어있지 않을 경우 함수 호출 연산자 안에 데이터를 명시한다.
// 함수 호출 연산자 : ()
//rand();
//srand(3);
// 함수 정의하기! (만들기)
// 함수를 만들 때는 어떠한 중괄호 안에 만들지 않는다!
//// return
//// 함수를 종료시키면서 값을 반환할 때 사용한다.
//// 단, 반환 타입이 void일 경우 return 뒤는 생략할 수 있다!
//cout << 1 << endl;
//cout << 2 << endl;
//cout << 3 << endl;
//return;
//cout << 4 << endl;
//cout << 5 << endl;
// 함수 호출
int iA = 10, iB = 20;
int iRes = Add(iA, iB);
cout << iRes << endl;
}
#include <iostream>
using namespace std;
void Add()
{
int iRes = iA + iB;
}
void main()
{
// 지역 변수와 전역 변수
// 지역 변수와 전역 변수의 차이점
// ##1. 메모리에 상주하는 기간의 차이
// ##2. 변수에 접근할 수 있는 범위의 차이
// 지역 변수
// 함수를 정의할 때 { 여기부터 } 여기까지 범위를 설정한다.
// 범위 안쪽(중괄호 안에) 선언되어 있는 변수를 지역 변수라고 한다.
// 지역 변수는 해당 지역 내에서만 접근이 가능하다!
// iA와 iB는 main함수에 선언되어 있다!
// -> main에서만 접근할 수 있다!
// iRes는 Add함수에 선언되어 있다!
// -> iRes는 Add함수에만 접근할 수 있다!
// 메모리 영역 중 stack 영역은 함수가 시작되면 할당이 되고,
// 함수가 종료되면 소멸이 되는 공간이다.
// 또한, 다른 함수가 호출되면 stack 영역은 덮어쓰기 기능으로
// 이전에 보고 있던 stack 영역을 가리게 된다.
// -> 한번에 하나의 stack 만 볼 수 있다!!
// main함수를 시작하면서 main의 stack이 할당이 된다.
// main의 stack에는 iA와 iB가 할당되어 있다!
// Add 함수가 시작되면서 Add의 stack이 할당되는데
// 이 때, main의 stack을 가리게 된다.
// -> main stack에 있는 iA와 iB의 존재를 가리게 되어 찾을 수 없다!
// -> Add 함수에서는 iA와 iB에 접근할 수 없다!
// Add함수가 종료되면서 stack을 정리할 때 iRes 또한 소멸하게 된다.
// main함수에서 iRes에 접근할 수 없다!!
int iA = 10, iB = 20;
Add();
cout << iRes << endl;
}
c++ 자판기 프로그램 2 (0) | 2020.10.07 |
---|---|
C++ 함수, 포인터 개론 (0) | 2020.10.07 |
C++ for이용해서 별찍기 (0) | 2020.10.07 |
C++ for, for문 이용하여 구구단 출력 (0) | 2020.10.07 |
C++ 가위바위보 컴퓨터 대결 (0) | 2020.10.07 |