본문 바로가기

전체 글

(23)
배열 1. 배열을 사용하는 이유 3개의 정수가 있을 때 가장 큰 정수를 구하는 프로그램을 작성한다고 가정해보겠습니다. 3개의 정수를 변수 3개에 각각 넣어 비교하는 구문을 작성할 것입니다. 그렇다면 정수가 100개가 있을 때는 또 다시 100개의 변수를 만들어야 할까요? 사실 100개 정도 만드는 것 쯤이야 크게 문제될 것은 없습니다만, 솔직히 굉장히 비효율적인 방식이라 부담이 되는 것은 사실입니다. 만약 100,000,000개의 정수가 있다면 사람이 하나하나 변수를 지정하는 것은 불가능한 일입니다. 이러한 경우들에는 동일한 자료형을 여러 개 담는 기술이 필요할 텐데요, 이때 도움이 되는 것이 바로 배열입니다. 다음과 같이 인덱스가 0부터 7까지 있는 배열이 있다고 가정해보겠습니다. 우리가 일반적으로 숫자를 ..
함수 1. 함수 처음 학교에서 함수를 배웠을 때를 떠올려 보면 아래와 같은 그림을 자주 접했을 것입니다. 위 그림과 같이 함수는 함수 내부에서 해당 함수만의 연산과정에 따라서 입력 받은 값을 처리한 뒤에 출력하는 구조를 가집니다. 또한 함수는 특정한 기능에 대한 소스코드가 반복이 되는 것을 줄여줍니다. 애초에 다양한 프로그래밍 기법들은 프로그래밍을 얼마나 효과적으로 할 수 있는지, 얼마나 생산성을 높게 만들 수 있는지에 초점을 맞추고 있습니다. 따라서 함수 또한 특정한 소스코드가 반복되는 것을 줄이기 위한 목적으로 가장 많이 사용이 됩니다. 1.1. 형태 함수의 형태는 아래와 같습니다. 우리가 자주 사용해 왔던 main함수 또한 아래와 같은 형태를 따르고 있습니다. 반환자료형 함수명(매개변수) { // 수행될..
반복문 1. for문 for문은 내부의 조건에 부합하면 계속해서 특정한 구문을 실행하는 특성을 가지고 있습니다. 반복문에서 탈출하려면, 반복문을 탈출하고자 하는 위치에 break구문을 삽입하면 됩니다. for문의 형식은 아래와 같습니다. for (초기식; 조건식; 증감식) { // 반복할 코드 } 초기식이 가장 먼저 실행됩니다. 그 뒤 조건식으로 가서 해당 조건을 만족하면 반복할 코드를 실행합니다. 조건을 만족하지 못한다면 for문을 종료시킵니다. 조건식을 만족해서 코드가 실행되었다면 이후 증감식을 실행시킨 뒤 다시 조건식을 판별합니다. 1부터 100까지의 정수를 출력하는 예제를 작성해보면서 상세히 다루어 보겠습니다. 1.1. 예제1: 0부터 100까지의 정수를 출력하기 #include int main(void..
조건문 1. if문 if문은 내부의 조건을 검사해서 프로그램의 진행 경로를 결정합니다. 또한 조건의 개수가 많지 않을 때 사용하는 것이 적합합니다. if문은 아래와 같은 형식으로 작성됩니다. if (조건1) { // 조건1에 부합할 때 } else if (조건2) { // 조건1에 부합하지 않지만 조건2에 부합할 때 } else { // 위 조건들에 모두 부합하지 않을 때 } 예제를 통해서 if문이 어떻게 돌아가는지 알아보겠습니다. 1.1. 예제 1 가게에 손님이 왔을 때 2명 이하는 2인석으로, 3명 또는 4명일 때는 4인석으로, 5명 이상은 대형석으로 안내해주는 프로그램을 만들어 보겠습니다. #define _CRT_SECURE_NO_WARNINGS #include int main(void) { printf(..
연산자 1. 연산자와 피연산자의 개념 연산자(Operator) 는 연산을 수행하는 기호를 의미하고, 피연산자(Operand) 는 연산에 포함되는 변수나 상수를 의미합니다. A+B를 예로 들어보면 A와 B는 피연산자에 해당하며 + 는 연산자에 해당하는 것입니다. 1.1. 이스케이프 시퀀스(Escape Sequence) 연산자의 종류에 대해서 하나씩 알아보기 전에 잠시 이스케이프 시퀀스에 대해 짚고 넘어가겠습니다. 사실 이스케이프 시퀀스는 간단한 코드를 앞에서 먼저 다루면서 자연스럽게 자주 사용했습니다. 예를 들어 아래와 같은 코드를 프로그램 안에서 자주 보았을 것입니다. 아래의 코드에서 \n은 줄바꿈의 역할을 합니다. printf("%d\n", a > b); 이 외에도 다양한 이스케이프 시퀀스가 존재합니다. 이스..
기본 입출력 1. scanf() 1.1. scanf()가 뭔데? scanf()는 사용자로부터 데이터를 입력 받아 특정한 변수에 값을 넣기 위해서 사용됩니다. C프로그래밍을 처음 배울 때 자주 사용되는 프로그램 입력 방식이지만 Visual Studio에서는 scanf()를 취약한 함수로 분류해 놓았기 때문에 사용이 제한됩니다. 따라서 Visual Studio에서 scanf()를 사용하려면 "이 함수가 취약하다는 것을 알지만 난 사용할래"라고 코드 내에 명시해주어야 합니다. 아래와 같이 코드 최상단에 #define _CRT_SECURE_N0_WARNINGS 한 줄만 추가해주면 오류가 발생하지 않습니다. #define _CRT_SECURE_NO_WARNINGS #include int main(void) { } 1.2. 주..
변수와 상수 1. 기본적인 소스코드 내용에 대한 이해 아래의 Hello World 라는 기본적인 프로그램을 통해서 소스코드의 기본적인 내용을 알아보겠습니다. #include int main(void) { printf("HELLO WORLD\n"); system("pause"); return 0; } 1.1. 라이브러리 불러오기 C와 C++에서는 #include라는 명령어를 통해서 다양한 라이브러리를 불러올 수 있습니다. #include 위 코드에 작성된 라이브러리에는 다양한 기본적인 기능이 담겨 있는데 그 예로 printf()와 같은 함수가 있습니다. stdio.h의 stdio 는 Standard Input Output의 약자입니다. 1.2. 메인함수 프로그램은 항상 메인 함수로부터 시작됩니다. 또한 함수는 반환 값..