[C++] 따라하며 배우는 C++ - (5) 흐름제어
2020. 4. 20. 21:57
C++/따라하며 배우는 C++
제어 흐름 개요 Control flow CPU가 해야 할 일을 조금 더 복잡하게 만들어 줄 수 있음, 흐름을 제어할 수 있음 순서도(Flow Chart) 1. 중단(Halt) 2. 점프(Jump): goto, break, continue 3. 조건 분기(Conditional branches): if, switch 4. 반복(루프)(Loops): while, do-while, for 5. 예외 처리(Exceptions): try, catch, throw #include #include // exit int main() { using namespace std; cout x; if (x > 10) { cout
[C++] 따라하며 배우는 C++ - (4) 변수 범위와 더 다양한 변수형
2020. 4. 18. 19:15
C++/따라하며 배우는 C++
지역 변수, 범위, 지속 기간 지역 변수 범위(scope): 어디서 사용할 수 있고, 없는가 지속기간(duration): 메모리를 반납 보통 함께 묶어서 생각하는 것이 일반적이나 동적 할당을 할 때는 범위와 지속기간이 분리된다. #include namespace work1 { namespace work11 { namespace work111 { int a = 1; void doSomething() { a += 3; } } } int a = 1; void doSomething() { a += 3; } } //namespace work1::work11::work112 { //컴파일러 17버전부터 가능하나 적게 들어가는 것이 좋다 //} namespace work2{ int a = 1; void doSomet..
[C++] 따라하며 배우는 C++ - (3) 연산자들
2020. 4. 16. 22:40
C++/따라하며 배우는 C++
연산자 우선순위와 결합 법칙 연산자 종류 및 우선순위 https://ko.wikipedia.org/wiki/C%EC%99%80_C%2B%2B%EC%9D%98_%EC%97%B0%EC%82%B0%EC%9E%90 C와 C++의 연산자 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 이것은 C와 C++ 프로그래밍 언어의 연산자의 목록이다. 나열된 모든 연산자는 C++에 존재한다. 네번째 열("C에 포함됨")은 해당 연산자가 C에 존재하는지를 표시한다. C는 연산자 오버로딩을 지원하지 않는다. 연산자가 오버로드되지 않았다면, &&, ||, ,(쉼표 연산자) 연산자는 첫 번째 피연산자(operand)가 평가된 시점이 시퀀스 포인트이다. C++는 형 변환 연산자인 ..
[C++] 따라하며 배우는 C++ - (2) 변수와 기본적인 자료형
2020. 4. 14. 23:37
C++/따라하며 배우는 C++
기본 자료형 소개 Fundamental Data Types 자료형: 자료의 형태 int i = 1; -> 초기화, 객체지향으로 넘어가면 매우 중요하다. 정수, 실수, 문자, 불리언 등 여러가지 자료형이 있고, 메모리에 저장된다. 각 자료형마다 사이즈가 다르다. 저장 방식도 타입마다 조금씩 다르다. 문장을 저장하려면 String을 사용한다. 기본 데이터 타입은 아니나, 표준처럼 사용되는 경향이 있다. 음수가 가능한 타입은 signed, 가능하지 않은 타입은 unsigned. unsigned의 처리 속도가 더 빠른 경우가 있다. 컴파일러에 따라서 사이즈가 달라질 수 있다. 정해진 메모리에 담을 수 있는 사이즈만 담을 수 있다. 최근에는 사용하기 직전에 변수를 선언하는 것을 선호한다. 1. 디버깅 편리 2. ..
[C++] 따라하며 배우는 C++ - (1) C++의 기본적인 사용법 ③
2020. 4. 13. 18:53
C++/따라하며 배우는 C++
연산자와의 첫 만남 리터럴(Literal) 피연산자(Operand) 단항(unary), 이항(binary), 삼항(ternary) #include using namespace std; int main() { int x = 2;// x is a variable, 2 is a literal. / assignment: = cout
[C++] 따라하며 배우는 C++ - (1) C++의 기본적인 사용법 ②
2020. 4. 12. 22:14
C++/따라하며 배우는 C++
변수와의 첫 만남 객체(objects): 메모리에 저장이 돼 있는 정보가 객체로써 존재함 변수(variables): 수학에서 얘기하는 변수처럼 기능하나, 내부적으로 작동할 때는 메모리에 담겨 있는 객체의 이름 Left-values / Right-values: 메모리 변수에 직접 접근할 수 있느냐 초기화(initialization)와 대입(assignment) 초기화를 안 했을 때의 문제점 #include int main() { int x;// X: 메모리에 있는 어떠한 공간의 이름, 정수 하나 담을 크기(integer) x = 123;// =: assignment operator, '대입' x = x + 2;// 우측의 x는 R-value std::cout
[C++] 따라하며 배우는 C++ - (1) C++의 기본적인 사용법 ①
2020. 4. 11. 23:43
C++/따라하며 배우는 C++
프로그램의 구조 (표현)식 - Expressions 명령문 - Statements 함수 - Functions 라이브러리, 표준 라이브러리 OS는 프로그램을 실행할 때 먼저 main function을 찾는다. 빈칸이나 빈 줄은 컴파일러가 무시한다! 프로그래머의 편의를 위한 것이다. 기능을 수행하는 문장을 Statement, return 0;는 return 기능을 하고 있기 때문에 return statement라고 부른다. 명령문의 마지막에 세미콜론(;)을 반드시 쓴다. #include /* preprocessor directive #: 전처리기 iostream: input output stream */ int main(void) { (1 + 2) * (3 + 4);// expression int x = 2..
[C++] 따라하며 배우는 C++ - (0-4) 통합개발환경의 기본적인 사용법
2020. 4. 10. 00:24
C++/따라하며 배우는 C++
윈도우 비주얼 스튜디오 설치 비주얼 스튜디오 2017 다운로드 - https://visualstudio.microsoft.com/ko/vs/older-downloads/ Visual Studio 이전 다운로드 - 2017, 2015 및 이전 버전 Visual Studio Community, Professional 및 Enterprise 소프트웨어의 이전 버전을 다운로드하세요. 여기서 Visual Studio(MSDN) 구독에 로그인하세요. visualstudio.microsoft.com 설치 시 C++를 사용한 데스크톱 개발(Desktop development with C++)을 체크하여 필수로 설치해야 한다. Hello, World! Create directory for solution: 한 프로젝트 ..
[C++] 따라하며 배우는 C++ - (0-3) 프로그래밍 과정 소개
2020. 3. 27. 20:16
C++/따라하며 배우는 C++
프로그래밍 과정 1. 풀어야 할 문제를 정의한다. - 무엇을 만들고 싶은지, 세부 기능이 어떻게 되는지 정리 2. 해법을 설계한다. - 어떻게 만들 것인지 계획을 꼼꼼하게 단계별로 세움 3. 해법을 구현하는 프로그램을 작성(Write)한다. - 생각한 대로 프로그램을 작성함, '코드를 Write한다' 4. 프로그램을 컴파일(Compile)한다. - 소스파일(.cpp) > 컴파일 > 오브젝트 파일(.o, .obj) 5. 오브젝트(Object) 파일들을 링킹(Linking)한다. - 다양한 오브젝트 파일을 합쳐서(링커) 실행 파일 생성 6. 테스트해 보고 문제가 있으면 고친다. - 디버깅(Debugging) ※ 런타임 서포트(Runtime Support): 모든 일을 전부 직접 소스 코드에서 짤 필요가 없다..
[C++] 따라하며 배우는 C++ - (0-2) C, C++ 언어 소개
2020. 3. 26. 22:01
C++/따라하며 배우는 C++
C/C++ 1970년대 초반에 만들어진 C언어. C++는 70년대 후반, C를 사용하다가 기능이 확장된 개념이다. "객체지향"이라는 개념이 추가되었다. C/C++ 언어의 설계 철학 "프로그래머를 믿어라." 실제 세계에서 쓸모가 있어야 한다. 프로그래머가 스스로 스타일을 선택할 수 있어야 한다. (자유와 다양성) 유용한 기능을 추가하는 것이 오용보다 더 중요하다. (잘못 사용하는 것보다 쓸모있는 기능을 중시함) 프로그래머의 의도를 알 수 없다면 스스로 명시하게 한다. (다른 언어들의 경우, 명확하지 않아도 작동되는 경우가 있음) C++ 아래에 다른 언어가 없다. (어셈블리어는 예외) 해당 포스트는 '홍정모의 따라하며 배우는 C++' 강의를 수강하며 개인 백업용으로 메모하였습니다. 인프런: https://w..
[C++] 따라하며 배우는 C++ - (0-1) 프로그래밍 언어란
2020. 3. 25. 21:22
C++/따라하며 배우는 C++
프로그래밍 언어? 프로그램은 컴퓨터가 원하는 기능을 수행하게끔 만든다. 일상생활의 언어와 프로그래밍 언어는 사고 방식 자체가 다르다. (계산적 사고, 컴퓨팅 사고) C, C++를 공부하다 보면 자동적으로 습득되는 경향이 있다. 따로 공부해도 좋음! 애플리케이션도 프로그램이다. 문맥에 따라 사용이 다르다. 소프트웨어는 하드웨어와 비교되는 경우 사용한다. 기계어(Machine Language) 컴퓨터도 기계(Machine)라고 부른다. 전압의 차이(HIGH, LOW)로 신호를 인식한다. 실제로 프로그래밍할 때는 기계어를 거의 사용하지 않는다. 어셈블리 언어(Assembly Language) 주로 CPU가 하는 단위 기능들을 직접 수행하거나, 메모리에 있는 정보를 옮기고 등등... 직접적으로 제어할 수 있는 ..
[C++] 따라하며 배우는 C++ - (0-0) C++ 꼭 공부해야 할까?
2020. 3. 24. 19:34
C++/따라하며 배우는 C++
C++ 꼭 공부해야 할까? C++은 고전적인 언어지만 반드시 공부를 해야 한다. '기본'이 중요하다. 힘든 구간을 견딜 자신이 없다. => 베끼는 것으로 시작하면 좋은 프로그래머가 될 수 있고, 그 이후 위대한 프로그래머로 발전해 나가면 된다. 0. 올바른 타이핑 방법을 연습한다. 1. 간단한 개념을 이해한다. - 압박감 느끼지 말기, 머릿속에서 '완벽하진 않지만 배운 것 같다'로 충분 2. 예제를 따라 해 본다. - 타이핑하며 코드를 쳐 보고, 실행이 되는가를 확인 3. 문제가 생기면 해결한다. - 문제 해결 과정이 핵심! 발전하고 있다는 증거 4. 예제를 내 맘대로 바꿔 본다. - 호기심이 들 때 바로 해 보기 C++ 감을 잡으면, 다른 언어 간단하게 배워서 바로 핵심을 다룰 수 있다. 장기적으로 좋..
[C++] 매크로와 인라인(inline) 함수
2020. 1. 22. 22:33
C++/공부
선행처리기와 매크로 선행처리: 컴파일 이전의 처리 소스 파일은 컴파일러에 의해 컴파일 되기 이전, 선행처리기에 의해 선행처리 과정을 거치게 된다. 이때 선행처리기는 삽입해 놓은 선행처리 명령문대로 소스 코드의 일부를 단순 치환(substitution) 한다. 선행처리 명령문은 # 문자로 시작하며, 선행처리기에 의해 실행되는 문장이기 때문에 세미콜론(;)을 붙이지 않는다. 다음은 코드 내 PI 라는 문자를 3.14로 치환하기 위한 코드이다. #definePI3.14 선행처리 명령문은 '지시자', '매크로', '매크로 몸체(대체 리스트)'의 세 부분으로 구분할 수 있다. 지시자: 선행처리기가 프로그래머가 지시하는 바를 파악하기 위한 부분 매크로: 매크로 몸체로 치환될 부분, 매크로 이름은 대문자로 정의하는 ..
[C++] 함수 오버로딩과 매개변수의 디폴트 값
2020. 1. 13. 07:32
C++/공부
함수 오버로딩(Function Overloading) C언어에서는 동일한 이름의 함수가 존재하면 컴파일 오류가 발생한다. int main(void) { MyFunc(20);// MyFunc(int a) 호출 MyFunc(30, 40);// MyFunc(int b, int c) 호출 return 0; } 함수 호출 시 전달되는 인자를 통해서 이름이 같아도 함수의 구분이 가능하기 때문에, 매개변수 선언 형태가 다르다면 동일한 이름의 함수 정의를 허용한다. 이를 함수 오버로딩이라고 한다. C++에서는 함수를 찾을 때 함수의 이름과 매개변수 정보를 동시에 활용한다. 따라서 MyFunc(30, 40)의 경우, 두 개의 int형 매개변수를 받는 MyFunc이라는 함수를 찾아간다. 반면 C언어는 함수의 이름만을 이용..
[C++] 데이터의 입출력 - C++의 printf, scanf
2020. 1. 9. 10:23
C++/공부
C++의 printf 언어를 배울 때, "Hello World" 메시지를 출력하는 것부터 시작한다. 당연하게도 C언어의 프로그램과는 차이가 있으나, 눈에 익혀 자연스럽게 외워야 한다. 기존 C 프로그램과 동일하게 생성하되, 새 항목 추가 시 확장자명을 .cpp로 유지해야 한다. HelloWorld.cpp #include int main(void) { int num = 20; std::cout