중간고사 범위 (24 기준)
▶Lec 2.
#define으로 정의하기
#define NUM 45
y = NUM + NUM#define으로 함수 정의하기
#define SQUARE(x) ((x)*(x))
#include <iostream>
using namespace std;
int main() {
cout<<SQUARE(3); //9
}예시 코드 : 화씨 온도 → 섭씨 온도
#include <iostream>
int main()
{
double fahr,celcius;
std::cout << "Enter Temperature in Fahrenheit\n";
std::cin >> fahr;
celcius = (fahr - 32.0)*5.0/9.0;
std::cout << fahr << " fahrenheit is " << celcius << " Celcius" <<. std::endl;
return 0;
}lec 2 exercise
#include <iostream>
#define isZero(x) (x == 0)
int main() {
int a;
std::cin >> a;
std::cout << isZero(a); // Output : 1
return 0;
}▶Lec 3.
const : 한 번 지정하면 바꿀 수 없는 값
const int foo = 100;
foo = 21; // Error : l-value specifies const objectInteger vs floating (정수형 vs 실수형)
피연산자 중 하나라도 실수이면 실수 연산이 수행됨
두 피연산자가 모두 정수형일 경우 정수 연산이 수행됨
5.0 / 2 = 2.5
5/2 = 2제어문 : if, else, switch
반복문 : while, for, do while
break : 반복문 탈출
continue : 다음 반복의 처음으로 이동
for( ; ; ) 는 while(1)과 같음
C에서 해서 다 알거라고 믿음
▶Lec 4.
namespace?
namespace란 식별자들의 이름이 충돌하지 않고 고유함을 보장하는 코드 영역을 말한다. 우리가 사용할 기본 입출력은 모두 std 라는 네임스페이스 안에 들어있기 때문에 헤더파일 아래에
using namespace std;라는 std 라는 네임스페이스를 사용하겠다는 선언을 해준다.
아래는 네임스페이스를 사용할 경우와 사용하지 않을 경우의 차이이다.
std::cin>>a>>std::endl;
//네임스페이스를 사용하지 않을 경우
cin>>a>>endl
//네임스페이스를 사용할 경우보다시피 네임스페이스를 사용하면 코드의 길이가 확연히 줄어들게 된다.
function
함수에서는 반환형, 함수 이름, 매개 변수를 설정해야함
반환형 함수이름 (매개변수1, 매개변수2, ... ) {
함수 본문 내용
}
int add(int a, int b) {
return a + b;
}
int main() {
int x,y;
cin>>x>>y;
cout<<add(x,y)<<endl; // 입력된 x, y 에 대해 x+y 값 출력
}함수 선언 후 나중에 정의할 수도 있음
함수가 자기자신을 호출할 수도 있음
라이브러리 : 미리 정의된 함수들을 가지고 있음
#include <math.h>
y = 25.0
x = sqrt(y);
// <math.h>의 sqrt 함수는 매개변수의 제곱근을 반환함변수 관련
전역 변수
함수 밖 전역 범위에서 정의한 변수
extern : 아무 곳에서 정의된 전역 변수 ex) 다른 파일의 전역 변수를 가져옴
지역 변수
어떤 함수 안에서 정의되어 그 함수가 반환되면 없어지는 변수
static : 단 한 번만 생성되는 지역 변수
int countcalls(void)
{
static int count = 0;
count++;
return (count);
}
int main()
{
cout << countcalls() << endl; // 1
cout << countcalls() << endl; // 2
cout << countcalls() << endl; // 3
}
// 결과 : 반복문에서 처음 한번만 생성되고 두번째부터는 처음 값을 그대로 가져와서 씀▶Lec 5.
Reference
다른 변수를 참조함
#include <iostream>
using namespace std;
int main() {
int x = 10;
int & y = x; // y값을 바꾸면 x값도 같이 바뀜
y += 10; // y에 10 증가 = x에 10 증가
cout<<x;
}call-by-value vs call-by-reference
- call-by-value
함수에 인수를 전달할 때 변수의 값을 함수에 전달함
함수 내부에서 값을 변경하더라도 원래의 변수에는 영향이 없음
void modifyValue(int x) {
x = 10;
}
int main() {
int a = 5;
modifyValue(a);
}- call-by-reference
함수에 인수를 전달할 때 변수 자체에 대한 참조를 전달함
함수 내부에서 값을 수정하면 원래의 변수의 값도 변함
void modifyValue(int &x) {
x = 10;
}
int main() {
int a = 5;
modifyValue(a);
}