💻프로그래밍 내용 정리
![[C++ 1.1.6] 상수와 타입(enum), 엄격한 타입(enum class(스트롱 타입)), 구조체(struct)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo4lgJ%2FbtrJBcKvbJd%2FjI8BUw6GRkV2L00fpjs4D1%2Fimg.png)
[C++ 1.1.6] 상수와 타입(enum), 엄격한 타입(enum class(스트롱 타입)), 구조체(struct)
1. 상수 (const) 체스 프로그램을 작성할 때 각 말의 종류를 int 타입의 상수(변하지 않는 수)로 표현한다고 하면 const란 키워드를 붙이면 그 값이 변하지 않게 만들 수 있다. const int PieceTypeKing = 0; const int PieceTypeQueen = 1; const int PieceTypeRook = 2; const int PieceTypePawn = 3; // 기타 int myPiece = PieceTypeKing; PieceTypeKing의 값을 다음과 같이 바꾸려고 한다면 오류가 발생하여 값을 바꾸지 못하게 할 수 있다. const int PieceTypeKing = 0; PieceTypeKing = 4; 이렇게 표현해도 되지만 위험한 상황이 발생할 수 있다...
![[C++ 1.1.5] 연산자(단항, 이항, 비트 연산자)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctMEgK%2FbtrJMzqhYUf%2FQUBMh7jq62LiSNh7s9Yi5K%2Fimg.png)
[C++ 1.1.5] 연산자(단항, 이항, 비트 연산자)
연산자 다음 표는 C++에서 변숫값 변경 용도로 가장 흔히 사용하는 연산자와 사용법이다. = 오른쪽의 값을 왼쪽의 표현식에 대입하는 이항 연산자. int i; i = 3; ! 표현식의 참/거직(또는 0이 아닌 값과 0)을 반전시키는 단항 연산자 bool b = !ture; bool b2 = !b; + 덧셈을 나타내는 이항 연산자 int i = 3 + 2; int j = i + 5; int k = i + j; - * / 뺄셈, 곱셈, 나눗셈을 나타내는 이항 연산자 int i = 5 - 1; int j = 5 * 2; int k = j / i; % 나눗셈의 나머지를 계산하는 이항 연산자. 모드, 모듈로 또는 나머지 연산자라 부른다. int remainder = 5 % 2; ++ 표현식의 값에 1을 더하는 단..
[C++ 1.1.4] 변수, 캐스팅(동적 형변환, static_cast)
변수 C++에서 변수는 코드 안 어디에서나 선언과 초기화가 가능하다. 변수를 선언할 때 꼭 초기화를 할 필요는 없지만 이로 인해 버그가 발생할 가능성이 높다. 다음은 정수 값을 표현하는 int 타입 변수를 선언하는 방식이다. int uninitializedInt; int initializedInt = 7; cout
[C++ 1.1.3] 리터럴
리터럴 코드에 표시한 숫자나 스트링과 같은 값을 의미한다. 숫자는 다음과 같은 리터럴로 표현할 수 있다. (모두 숫자 123이다) - 10진수 리터럴, 123 - 8진수 리터럴, 0173 - 16진수 리터럴, 0x7B - 2수 리터럴, 0b1111011 또한 C++ 에서는 다음과 같은 리터럴도 지원한다. - 부동소수점 값(3.14f) - 배정도 부동소수점 값(3.14) - 단일 문자('a') - '0'으로 끝나는 문자 배열("character array") 리터럴 타입을 직접 정의할 수도 있다. 숫자 리터럴에서는 자릿수 구분자를 사용할 수 있다. 자릿수 구분자는 작은따옴표로 표현한다. - 23'456'789 - 0.123'456f C++17 부터는 16진수 부동소수점 리터럴도 지원한다. (0x3.ABCp..
[C++ 1.1.2] 네임스페이스(namespace, nested, alias)
네임스페이스 네임스페이스는 코드에서 이름이 서로 충돌하는 문제를 해결하기 위해 나온 개념이다. 코드를 네임스페이스 안에 담으려면 먼저 코드를 네임스페이스 블록으로 감싸야한다. 예를 들어 namespaces.h 파일에 담긴 내용을 다음과 같이 mycode란 네임스페이스로 묶을 수 있다. namespace mycode { void foo(); } 네임스페이스는 함수나 메서드의 선언뿐만 아니라 구현 부분도 묶을 수 있다. #include #include "namespace.h" namespace mycode { void foo() { std::cout
![[C++ 1.1.1] 주석, 전처리 지시자, main() 함수, I/O 스트림](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAqJ6D%2FbtrJIsZia48%2FmKz5P2BTuf4AXzHTgSwKP0%2Fimg.png)
[C++ 1.1.1] 주석, 전처리 지시자, main() 함수, I/O 스트림
들어가며 예제 //helloworld.cpp #include int main() { std::cout