🌈 프로그래밍/C++

    [C++] 1.1.10 C 스타일의 배열

    안녕하세요? 수구리입니다..!! 오늘은 폭풍 업로드를 하고 있습니다.. 바로 꿀 주말을 보내기 위해서이죠..!! 다들 주말에는 주로 무엇을 하시나요?? 궁금합니다..! 암튼 각설하고 이번 포스팅에서는 C 스타일의 배열에대하여 알아보려고 합니다! 배열은 쉽게 말해 기차라고도 생각할 수 있겠습니당. C++에서는 배열을 선언할 때 반드시 배열의 크기 지정 반드시 상수 또는 상수 표현식(constant expresstion, constexpr)로 지정해야 한다. (11장에서 자세히) // 배열 선언 및 초기화 int myArr[3]; myArr[0] = 0; myArr[1] = 0; myArr[2] = 0; // zero-initialization (제로 초기화) int myArr[3] = {0}; // 0 생..

    [C++] 1.1.11 std::array

    안녕하세요! 수구리입니다. 지난 포스팅에서는 C 언어에서의 배열에 대하여 알아보았는데요~ 이번 포스팅에서는 C++에서 제공하고 있는 std::array에 대하여 알아보려고 합니다! 출발! 헤더 파일에 정의되어 있는 std::array라는 고정 크기 컨테이너를 제공한다. std::array의 장점 * 항상 크기를 알 수 있다. * 자동으로 포인터를 캐스팅 하지 않아서 특정 종류의 버그를 방지할 수 있다. * 반복자로 배열에 원소에 대한 반복문을 쉽게 작성 가능. // array 컨테이너 예시 array arr = {1, 2, 3}; cout

    [C++] 1.1.9 함수

    안녕하세요? 수구리에요. 이번 포스팅에서는 프로그래밍! 하면 빼놓을 수 없는 함수에 대하여 알아보도록 하겠습니다. 내용이 많지는 않으니 지적은 환영입니다! 프로그래밍을 하다가 규모가 큰 프로그램이면 가독성을 높이기 위해 함수 단위로 간결하게 나눠서 작성해야 한다. 그리고 하나의 함수는 하나의 동작을 기본으로 작성하는 것이 좋다. 함수를 선언하는 문장을 함수 프로토타입(function prototype) 또는 함수 헤더(function header)라고 한다. 구체적인 내용은 보지 않고 함수에 어떻게 접근하는지에 대한 형식만 방식만 표현한다는 의미이다. 또한 함수의 리턴 타입을 제외한 함수 이름과 매개변수 목록을 함수의 시그니쳐(function signature)라고 한다. // 함수 선언 방법 void ..

    [C++] 1.1.8 논리 연산자

    안녕하세요? 수구리입니다. 지난 시간에는 조건문에 대하여 살펴보았는데요 오늘은 논리 연산자에 대하여 알아보도록 하겠습니다! 간단하니까 가볍게 읽어보세요! C++에서는 단락 논리 (short-circuit logic) (축약 논리) 방식으로 평가한다. 즉, 식을 평가하는 도중에 결과가 확정되면 나머지 부분은 평가를 하지 않는다. // bool1이 true라면 전체가 true이므로 나머지 연산은 평가하지 않는다. bool result = bool1 || bool2 || (i > 7) || (27 / 13 % i + 1) 7) && !don..

    [C++] 1.1.7 조건문

    안녕하세요? 수구리입니다. 지난 포스팅에서는 C++의 타입에 대해서 알아보았는데요~ 이번 시간에는 흔하디 흔하지만 알고 넘어가야 하는 조건문이에요! 오타나 지적은 환영입니다~ 바로 시작하겠습니다! 대표적인 조건문 if/else 문 switch 문 조건 연산자 if/else 문 // 연속 if 문 if (i > 4) { // do something } else if { // do something } else { // do something } 소괄호안에는 무조건 bool type의 value이어야 한다. C++17에서 if 문의 이니셜라이저 if문 안에 이니셜라이저를 넣는 기능이 추가됨. // 이니셜라이저에 정의한 변수는 에서만 사용 if ( ; ) { } switch 문 다양한 경우를 표현하는 상숫값들..

    [C++] 1.1.6 타입

    안녕하세요? 수구리입니다! 지난 포스팅에서는 연산자들에 대하여 알아보았는데요~ 이번 시간에는 타입에 관련된 내용들입니다! 바로 시작하겠습니다. 오타 또는 잘못된 내용이 있다면 알려주시면 감사하겠습니다. ( _ _ ) 꾸벅 C++ 에서는 기본 타입을 조합해서 더 복잡한 타입을 정의할 수 있다. C언어에서도 사용하던 것으로 소개. 다른 사람이 작성한 코드를 이해하기 위해서 알아두자 ! 1. 열거 타입 (enum) 숫자를 나열하는 방식과 범위를 마음대로 정의해서 변수를 선언하는데 활용 // const로 값이 변하지 않도록 정의 const int PieceTypeKing = 0 const int PieceTypeQueen = 1; const int PieceTypeRook = 2; const int PieceT..

    [C++] 1.1.5 연산자

    안녕하세요? 수구리입니다. 오늘은 C++의 연산자에 대해서 간략히 알아보도록 하겠습니다! 변수값을 지정하고, 변경을 할 수 없다면 변수의 의미가 없죠! 바로 연산자를 통해서 변수의 값을 변경할 수 있습니다. - 이항 연산자 (binary) - 단항 연산자 (unary) - 삼항 연산자(ternary) -> 1.1.7 조건문에서 소개 이처럼 크게 세 가지의 연산자가 존재하는데요~ 바로 예제를 확인해보도록 합시다! // 가장 자주 사용하는 변수 type과 연산자 예시 // 변수 선언 int someInterger = 256; short someShort; long someLong; float someFloat; double someDouble; someInterger++; // 단항 연산자 : 다음 문장부터..

    [C++] 1.1.3 ~ 1.1.4 리터럴과 변수

    안녕하세요? 수구리입니다. 지난 시간에는 namespace에 대하여 알아보았는데요 ~ 오늘은 리터럴과 변수에 대한 내용을 정리해보려고 합니다!! 1.1.3 리터럴(literal) 리터럴은 의역하자면 " 말 그대로 " 라는 뜻이에요. 즉, 값 자체가 이름이라는 뜻이죠. C++에서는 다양한 리터럴들을 제공해준다고 합니다. - 십진수 리터럴, 123 - 8진수 리터럴, 0173 - 16진수 리터럴, 0x7B - 이진수 리터럴, 0b111011 위의 예시에서는 모두 같은 숫자 123을 뜻한다고 합니다. 그리고 또 리터럴 타입을 직접 정의할 수도 있다고 합니다! 이 내용은 한참 뒤에 다시.. (참고) C++부터는 16진수 부동소수점 리터럴도 지원한다. ex) 0x3, ABCp-10, 0XB.cp121, etc....

    [C++] 1.1.2 namespace

    안녕하세요? 수구리입니다! 오늘은 namespace에 대하여 알아보도록 하겠습니다. namespace 란? 책에서는 이렇게 정의하고 있습니다. 네임스페이스는 코드에서 이름이 서로 충돌하는 문제를 해결하기 위해 나온 개념이다. 만약 A라는 함수를 작성하였는데 어떤 라이브러리에서의 함수 이름이 A 함수로 같은 이름이라면.. 컴파일러가 어떤 함수인지 구별을 못하니까 문제가 발생하게 되는 것입니다! 따라서 namespace를 통해서 어떤 이름이 어디에 속해 있는지에 대한 문맥을 정의하여 문제를 해결할 수 있습니다. 바로 이렇게 말이죠 // namespace.h namespace mycode { void A(); } 이렇듯 namespace는 함수 뿐만 아니라 구현 부분도 묶을 수 있습니다. #include #i..

    [C++] 1.1.1 Hello World..!

    안녕하세요? 수구리입니다. (어색;) 오늘부터 본격적으로 책을 펼치게 되었습니다. 우선 어떤 언어를 처음 접하던지 가장 먼저 하는것은 아니, 해야하는 것은바로 Hello World 프로그램을 작성하는 것 같습니다. 그렇다면 이 간단한 프로그램안에는 어떤 것들이 숨어있는지 알아보도록 하겠습니다. 우선 프로그램을 먼저 살펴보도록 하겠습니다! // helloworld.cpp #include int main() { std::cout if not defined] 주로 include 문장이 중복되어서 추가되는 것을 막기 위해서 사용한다. #pragma [xyz] xyz에 대한 구체적인 동작은 컴파일러마다 다르다. 주로 전처리 과정에서 이 지시자에 도달할 떄 경고 또는 에러 메시지를 화면에 표시하는 용도로 사용한다...