본문 바로가기

C, C++/문법 정리12

[C언어] 표준 입출력 - printf()와 scanf() 이 글에서는 이전 글에서 미처 살펴보지 못한 채 계속 사용하고 있던 printf()함수와 scanf()함수에 대해서 살펴보려고 한다. 먼저 printf()함수와 scanf()함수를 사용하기 전에 반드시 상단에 작성하는 코드 한 줄에 대해 언급하고 넘어가겠다. #include stdio.h라는 헤더 파일은 printf()함수와 scanf()함수에 대한 정의를 가지고 있는 헤더 파일로 stdio는 standard input output 의 약자로 표준 입출력에 대한 모든 내용을 포함하고 있는 헤더파일이다. 이 헤더파일 내에는 printf()함수와 scanf() 함수 외에 표준 입출력, 출력과 입력을 할 수 있는 많은 함수와 관련 변수들이 있지만 여기서는 가장 많이 사용되는 두 가지 함수, printf()함수.. 2020. 11. 10.
[C언어] 배열의 기초 - 여러개의 자료를 묶어서 관리하려면? [배열의 기초 - 여러개의 자료를 묶어서 관리하려면?] 오늘 글에서는 배열에 대해서 살펴볼 것이다. 배열에 대해서 이야기 하기 전에 한가지 이야기할 것이 있는데 언어에서 제공하는 기능, 문법들은 필요하기 때문에 만들어 진 것이며 가장 기본적인 문법들은 모든 프로그램의 가장 기본이 되며 가장 많이 사용된다는 것이다. 그렇기 때문에 가장 기본적인 문법들을 이해하는 것이 중요하며 기계적으로 사용하는 것이 아니라 왜 필요한 지에 대해서 생각하고 이해하면서 사용하는 것이 중요하다. 그래야 기계적으로 코드를 짜는 것에서 벗어나 재미있게 코드를 짤 수 있다. 그러면 먼저 배열이 왜 필요한 지에 대해서 생각해보자. 주목할 것은 우리가 일상을 살다보면 많은 것들을 보게 되는데 여기서 대부분의 것들은 어떠한 집합 아래 속.. 2020. 4. 30.
[C언어] break문과 continue문 [break문과 continue문] 이 주제에 대해서는 어느 정도 이미 언급을 했었다. break문의 역할과 활용에 대해서 어느 정도 설명을 이 글에서 무한 루프에 대해 설명하면서 언급을 했었다. 다만 간단하게 지나가듯이 설명을 했기 때문에 여기서는 break문은 정확하게 무엇이고 어떻게 사용을 할 수 있으며 break문과 같이 반복문에서 자주 사용되는 continue문에 대해서도 설명을 해보려고 한다. 먼저 늘 그렇듯이 왜 break문과 continue문이 필요한 지에 대해서 설명하려고 한다. 이해를 돕기 위해서 약간 판타지스러운 비유를 들어 설명해보겠다. 만약에 인생에서 어떠한 목표가 생겼는데, A라는 시점까지 그 목표를 달성하지 못한다면 목표를 결심한 시점으로 회귀, 돌아간다고 해보자. 그런데 시도.. 2020. 4. 27.
[C언어]만약 반복문 없이 반복하려면? - goto문과 스파게티 코드 [만약 반복문 없이 반복하려면? - goto문과 스파게티 코드] 만약 "Hello World"를 10줄에 걸쳐 10번 출력하는 코드를 반복문 없이, 그리고 printf함수를 한번만 사용해서 짜라고 하면 어떨까? 불가능한 미션인 걸까? 일단 결론부터 말하자면 C언어에서는 조건문과 반복문 외에 또다른 분기문을 제공한다. 그것이 바로 goto문이다. #include int main() { int i = 0; loop: printf("Hello World"); i++; if(i < 10) goto loop; return 0; } goto문은 label과 함께 사용하며 label은 "lable 이름:"과 같이 사용하여 표현한다. 여기서 goto문은 "goto label 이름"과 같이 사용하며 goto문을 사용하게.. 2020. 4. 26.
[C언어]반복문을 사용해보자 - while문과 do-while문, 그리고 for문 [반복문을 사용해보자 - while문과 do-while문, 그리고 for문] 이번 글에서는 while문과 do-while문, 그리고 for문으로 구성된 반복문에 대해서 알아보려고 한다. 먼저 반복문을 어디서 사용할 수 있는지, 그리고 반복문이 왜 필요한지에 대해서 이해해보자. 만약에 엄청난 To-Do-List 프로그램을 C언어로 작성했다고 하자. 그리고 이 프로그램은 기본적으로 To-Do-List를 수 십만개를 생성해서 사용하는 사람들을 대상으로 만들어져야 한다고 가정하자. 그렇다면 이 프로그램은 기본적으로 수만 개에서 수십 만개, 수백 만개의 To-Do-List가 생성되었을 때도 성능적인 이슈 없이 정상적이고 빠르게 동작해야 한다. 하지만 이것을 어떻게 확인할 수 있을까? 그 방법은 바로 직접 수백 만.. 2020. 4. 26.
[C언어]조건문을 사용해보자 2 - switch-case문 [조건문을 사용해보자 2 - switch-case문] 이전 글에서는 if문과 else문을 사용한 조건분기 구현에 대해서 살펴보았다. 이번에는 switch-case문을 사용해서 이전 글에서 구현했던 등급 채점 프로그램을 재구현해보고자 한다.먼저 switch문이 필요한 이유에 대해서 이해해보자. 이전 글에서 구현했던 등급 채점 프로그램의 기준은 매우 단순했다. 90점 이상, 80점 이상, 70점 이상, 70점 미만에 대해서만 조건을 구성했고 그 결과 4번만 조건문을 작성하면 됐다. 하지만 만약에 좀 더 세밀한 단위로 조건을 작성해야 한다면 어떨까? 0.1, 0.001, 0.0001 단위로 조건을 구성한다면 필요한 조건문의 개수는 매우 매우 많이 늘어나게 될 것이다. 이 경우 코드를 이해하기도 매우 어려워질 .. 2020. 4. 24.
[C언어]조건문을 사용해보자 1 - if문과 else문(+ 관계 연산자와 논리 연산자) [조건문을 사용해보자 - if문과 else문(+ 관계 연산자와 논리 연산자)] 여기서는 if문과 else문을 이용하여 조건에 따라 프로그램의 흐름을 바꾸는 방법에 대해서 살펴본다. 먼저 조건문이 필요한 이유에 대해서 이해하고 본격적으로 조건문에 대해 설명하고자 한다. 만약 우리가 선생님이고 학생들의 점수를 입력받으면 자동으로 등급을 채점해주는 프로그램을 만들고자 한다고 하자. 그러면 입력값은 학생들의 점수일테고, 출력은 학생들의 점수에 따른 등급일 터이다. 여기서 고민을 해볼 것이 어떤 기준에 따라 등급을 판별할 것이냐인데 여기서는 간단하게 위에서부터 70점 이상까지는 10점단위로 A,B,C 그리고 그 미만은 모두 F로 매긴다고 하겠다. 그러면 아래와 같이 96점은 A, 80점은 B, 64점은 F라는 결.. 2020. 4. 24.
[C언어]자료형에 대해 알아보자 [자료형에 대해 알아보자] 사실 지난 글에서 다룬 주제인 '변수'는 '자료형'이라는 개념을 이해해야만 완전히 이해할 수 있는 개념이였다. 우선 변수에 대해서 다시한번 이야기 해보자면 변수는 변할 수 있는 값을 저장할 수 있는 공간 그 자체를 가리키는 개념이였다. 우리가 변수를 선언한다는 것은 어떠한 크기의 메모리를 우리가 자유롭게 값을 쓰고 지우고를 하겠다고 프로그램을 실행하는 주체인 운영체제에게 알려주는 거라고 볼 수 있다. 여기서 중요한 것은 '어떠한 크기'의 메모리인지 어떻게 표현하는 가이다. 운영체제에게 메모리를 할당해달라고 요청하기 위해서는 얼마만큼의 메모리를 어떻게 사용할 것인지를 알려줘야만 한다. 여기서 등장하는 개념이 '자료형 Data Type'이다. 1바이트의 메모리를 사용하겠다, 2바이.. 2020. 4. 24.
[C언어]변수에 대해서 살펴보자 [변수에 대해서 살펴보자] 컴퓨터는 많은 내용을 기억해야 한다. 여기서 프로그램 실행 중에 기억해야 될 내용들은 RAM이라는 메모리를 통해서 기억된다. 메모리(Memory)는 대략적으로 위와 같은 선형 구조로써 표현할 수 있으며 각 공간마다 주소Address가 부여된다. 변수(Variable)의 엄밀한 정의는 변경 가능한 어떤 값을 저장하는 공간을 말한다. 변수와 상반되는 개념으로 변경할 수 없는 어떤 고유의 데이터를 유지하는 값은 상수(Constant)라고 한다. various(여러, 다양한) => variety(종류) / variable(변수) => variation(변화) 우리가 일상 생활 속에서 사용하는 많은 프로그램들은 수많은 변수들로 구성되어 있다. 예를 들어 철수가 어떤 게임을 한다고 할 때.. 2020. 4. 24.
[C언어]이스케이프 시퀀스에 대해 알아보자 이번 글에서는 지난 글에서 잠깐 언급되었던 이스케이프 시퀀스에 대해서 좀 더 자세히 알아보려고 한다. 이스케이프 시퀀스란 '\' 문자와 다른 문자를 결합하여 일반적인 방법으로는 표현하기 어려운 기능이나 문자를 표현할 수 있게 해주는 문자를 말한다. 지난 글의 경우, '\n'을 'Hello World!'를 출력하는 데 함께 사용하여 줄바꿈을 하는 용도로 사용했는데 이것이 바로 이스케이프 시퀀스였다. 이스케이프 시퀀스에는 줄바꿈을 해주는 '\n' 문자 외에도 다양한 것들이 있다. 일반적으론 표현할 수 없는 것들을 표현할 수 있도록 고안되었는데 생각보다 많으니 대충 살펴보고 필요할 때마다 참고하기를 바란다. 문자 의미 설명 \a 경보(alert) 경보를 울린다.(하드웨어에 따라 다르다) \b 백스페이스(bac.. 2020. 4. 24.
[C언어]Hello World를 출력해보자(+ 유용한 Dev C++ 단축키) [Hello World를 출력해보자(+ 유용한 Dev C++ 단축키)] Dev C++을 설치해봤으니 이번에는 간단한 프로그램을 작성해보려고 한다. 여기서는 "Hello World"를 출력하는 코드를 짜보고 각 줄마다 자세하게 설명해보도록 하겠다. 그 전에 C언어를 공부하면서 사용할 실습 폴더를 설정하고 Dev C++의 유용한 단축키들에 대해서 알아보자. 순서는 아래와 같다. 1. 우클릭 -> 새 폴더 생성을 통해 '실습 폴더'를 생성한다. 2. Dev C++을 실행한 후 도구->환경설정->파일/디렉토리->사용자 기본 디렉토리 옆 파일 아이콘을 클릭한다. 3. 열린 '폴더 찾아보기'에서 새롭게 생성한 실습 폴더를 클릭한 후, '확인'을 클릭한다. 이제 알아두면 유용한 Dev C++의 단축키들을 알아보고 본.. 2020. 4. 24.
[C언어]Dev C++ 다운 및 설치 [Dev C++ 다운 및 설치] Dev C++을 설치하고 간단한 프로그램을 돌려 보자 그 과정은 아래와 같다. 1. 구글(이외 포털사이트)에 "Dev c++ 다운로드" 검색 2. "Dev-C++ download | SourceForge.net" 클릭(https://sourceforge.net/projects/orwelldevcpp/ 접속) 3. "Download" 클릭 위의 방법대로 하면 Setup파일이 설치된다. 4. 이제 이 설치 파일(Setup 파일)을 클릭 5. 언어를 선택하고 OK를 클릭 6. 약관을 읽어보시고 "동의함" 클릭(미동의시 사용할 수 없을 것이다) 7. 설치할 것들을 선택하면 되는데, 잘 모르겠으면 Full로 선택하고 "다음"을 클릭 8. 설치할 위치를 설정하고 "설치"를 클릭 (일.. 2020. 4. 24.
반응형