C & C++ 169

Part 22. 사용자 정의 형식(구조체, 공용체, 열거형) 실습

Part 22. 사용자 정의 형식(구조체, 공용체, 열거형) 실습 사용자 정의 형식(구조체, 공용체, 열거형) 실습 77. 사용자 정의 실습 – 시나리오 프로그램을 작성할 때 사용자 정의 형식을 기준으로 소스 파일을 구분하여 개발하면 유지보수 비용을 줄일 수 있어요. 사용자 정의 형식을 헤더에 정의하고 해당 형식의 멤버에 영향을 주는 기능은 소스 파일에 정의하는 형태로 개발하면 개발 비용 뿐만 아니라 C++이나 Java, C#과 같은 OOP 언어를 익히는데도 도움을 줄 수 있죠. 여기에서는 학생을 사용자 정의 형식으로 정의하고 관련 기능을 소스로 정의하여 사용하는 실습을 진행할게요. 실습 시나리오 학생은 학번, 이름, 체력, 지력, 스트레스, 연속으로 공부한 횟수를 멤버로 갖는다. 학번은 순차적으로 부여..

Part 21. 사용자 정의 형식(구조체, 공용체, 열거형)

C언어 사용자 정의 형식(구조체, 공용체, 열거형)74. 구조체프로그래밍 언어에서는 공통적으로 사용할 기본적인 형식들을 제공하죠.그리고 프로그램 목적에 맞게 개발자가 형식을 정의하여 사용할 수 있는 문법을 제공하고 있어요.이러한 문법을 사용자 정의 형식이라 불러요.C언어에서 개발자가 형식을 정의하여 사용하는 문법에는 구조체, 공용체, 열거형이 있어요.구조체와 공용체는 여러 개의 멤버를 하나의 형식으로 묶어 사용할 수 있게 정의하는 문법이예요.그리고 열거형은 사용할 수 있는 값들을 열거하는 형식이죠.구조체는 C언어에서 가장 많이 사용하는 사용자 정의 형식이예요.여러 개의 데이터를 하나의 형식으로 묶어서 정의할 수 있어요.학생의 번호, 이름을 구조체로 정의하면 학생 구조체 변수 하나만 선언해서 번호와 이름을..

Part 20. 문자열

Part 20. 문자열 68. 문자열 문자열 - C언어 프로그램을 작성하다 보면 문자열 데이터를 사용할 때가 많아요. 대부분의 프로그래밍 언어에서는 문자열을 관리하는 별도의 형식을 제공하지만 C언어는 문자열 형식을 제공하지 않아요. 그렇다고 C언어에서 문자열 데이터를 표현할 수 없는 것은 아니예요. C언어에서는 문자열을 char 형을 원소로 하는 배열이나 char 형을 원소로 하는 포인터 형식으로 문자열을 표현할 수 있어요. 그리고 문자열 데이터를 표현할 때 쉽게 표현할 수 있게 쌍 따옴표를 사용하여 문자열을 표현할 수 있어요. #define MAX_NAME_LEN 50 char name[MAX_NAME_LEN + 1] = "hello"; const char *str = "yahoo"; char 형식 원..

Part 19. 함수 만들기 실습

Part 19. 함수 만들기 실습 61. 함수 만들기 실습 시나리오 함수 만들기 실습 - C언어 이번에는 단순한 기능을 수행하는 함수들을 직접 만들고 호출해서 사용하는 실습을 진행할게요. 함수 만들기 실습은 해야 할 일을 분석하는 것부터 시작하며 이런 작업을 도메인(Domain) 분석이라고 불러요. 도메인 분석이 끝나면 적당한 이름을 결정하고 입력 매개변수 리스트와 반환 형식을 결정할 거예요. 그리고 테스트 코드를 작성한 후에 실제 함수를 구현하는 순서로 실습할게요. 여러분은 함수 만들기 과정을 통해 기본적인 알고리즘 논리 전개와 함수 원형을 결정하는 능력을 키워야겠죠. 어떤 종류의 프로그래밍 언어를 사용하더라도 이러한 능력은 필수적으로 필요해요. 여러분은 각 단계별로 진행하고 난 후에 책의 내용과 비교..

Part 18. 다양한 종류의 변수 (전역, 지역, 정적, 상수화)

Part 18. 다양한 종류의 변수 (전역, 지역, 정적, 상수화) 57. 전역 변수 다양한 종류의 변수, 전역 변수, 지역 변수, 정적 변수, 상수화 변수 - C언어 아시는 것처럼 C언어에서는 프로그램에서 관리할 데이터를 할당하고 관리하기 위해 변수에 관한 문법을 제공하고 있죠. C언어에서는 프로그램의 모든 함수에서 접근할 수 있는 전역 변수와 선언한 블록에서만 접근할 수 있는 지역 변수가 있어요. 그리고 이 외에도 정적 변수와 상수화 변수를 제공하는데 이들에 관해 하나 하나 살펴봅시다. 전역 변수 C언어에서는 변수 선언을 특정 블록 내부가 아닌 외부에 선언한 변수를 전역 변수라 불러요. 전역 변수는 프로그램 시작할 때 할당하고 프로그램 끝날 때 해제하며 프로그램 전제 영역에서 접근할 수 있죠. 예를 ..

Part 17. 매개변수 전달 원리

Part 17. 매개변수 전달 원리 56. 매개변수 전달 원리 매개변수 전달 원리 - C언어 이번에는 함수 호출에서 종료까지 수행 원리를 간단히 알아볼게요. 함수를 호출하면 해당 함수의 지역 변수를 위한 메모리를 스택에 할당해요. 그리고 피호출 함수의 동작이 끝나면 호출한 함수의 다음 부분을 수행하는 것이 기본 동작이죠. main 함수가 시작하면 main함수의 지역 변수를 위한 메모리를 스택에 할당해요. 그리고 Add 함수를 호출하면 입력 인자를 복사한 후에 Add 함수의 지역 변수를 할당한 후에 복사한 값으로 초기화를 수행하죠. 그리고 함수의 return 문을 만나면 자신의 스택 영역 바로 밑(호출 함수 스택의 맨 위)에 반환 값을 설정해요. 그리고 자신의 스택 메모리를 해제한답니다. 호출 결과를 대입..

Part 16. 함수 개요 그리고 프로그램

Part 16. 함수 개요 그리고 프로그램 52. 함수 개요 함수 개요 - C언어 소프트웨어를 만들 때 가장 많은 비용이 들어가는 것이 유지 보수 비용이라는 연구 결과가 계속 나오고 있어요. 그리고 점점 유지 보수 비용이 차지하는 비율도 높아지고 있답니다. 프로그램을 제작할 때 유지 보수 비용을 줄이는 여러 가지 방법이 있는데 그 중에 하나가 재사용성을 높이는 것이죠. 여러 프로그램에서 공통으로 사용할 수 있는 것들을 라이브러리로 만들어서 필요할 때 추가하여 사용하는 거예요. 여러 개의 컴포넌트(Component, 부품)로 만들고 필요한 부품을 결합하여 프로그램을 만들어서 재사용성을 높이기도 해요. 그리고 프로그래밍할 때 재사용성을 높이는 기본은 함수를 만들어 사용하는 것이예요. 대부분의 프로그래밍 언어..

Part 15. 배열과 포인터 사용은 인덱스와 간접 연산자 [디딤돌 C언어]

Part 15. 배열과 포인터 사용은 인덱스와 간접 연산자 49. 간접 연산자 배열과 포인터 사용은 인덱스와 간접 연산자 [디딤돌 C언어] 피연산자로 포인터를 사용하는 더하기, 빼기 연산은 프로그램 메모리 주소를 계산하거나 상대적 거리를 계산하죠. 하지만 실제 개발자는 프로그램 메모리 주소를 아는 것은 큰 의미가 없어요. 개발자는 특정 프로그램 메모리 주소에 있는 값을 얻어오거나 설정하는 것을 원해요. C언어에서 포인터(배열 이름 포함)가 갖는 메모리 주소에 원하는 값을 설정하거나 얻어오는 방법은 크게 간접 연산자와 인덱스 연산자를 사용하는 방법이 있어요. 간접 연산자는 선언문이 아닌 코드 구문에서 포인터 형식을 피연산자로 오는 단항 연산자예요. 연산 기호는 포인터 변수를 선언할 때 사용한 지시 연산자 ..

Part 14. 배열과 포인터 그리고 산술 연산 [디딤돌 C언어]

Part 14. 배열과 포인터 그리고 산술 연산 45. 배열과 포인터 개요 배열과 포인터 개요 및 배열 선언문 동영상 강의 C언어에서는 같은 형식의 여러 데이터를 효과적으로 사용할 수 있는 배열을 제공하고 있어요. C언어에서 제공하는 기본 형식들은 변수가 관리하는 데이터가 하나여서 변수 이름은 갖고 있는 값을 의미하죠. 하지만 배열은 관리하는 데이터가 여러 개이므로 배열 이름이 특정 값을 대표할 수 없어요. C언어에서는 배열 이름은 관리하는 특정 값이 아닌 배열에 할당한 메모리의 시작 주소를 의미한답니다. 배열의 원소에 접근할 때는 배열 이름과 상대적 거리를 의미하는 인덱스 값을 사용하는 것이 일반적이예요. 예를 들어 3번째 원소를 접근하려면 시작 위치에서 거리 2이므로 인덱스 2를 사용해요. 따라서 상..

매크로 및 정리하기(제어문)

43. 매크로 구문 C언어에서는 자주 사용하는 표현을 약속하여 쉽게 표현할 수 있게 매크로 구문을 제공하고 있어요. 매크로 구문은 자주 사용하는 표현을 약속한 후 개발자가 매크로 구문을 사용하여 쉽게 코드를 작성하는 문법이예요. 개발자가 매크로 구문으로 코드를 작성하면 컴파일러가 기계어 코드로 번역하기 전에 약속한 구문으로 바꾸어 줘요. 이러한 과정을 전개라 부르며 컴파일 전에 수행해서 전처리 구문이라고도 불러요. C언어에서는 #include문으로 다른 파일의 내용을 포함시키거나 #define문으로 매크로 구문을 약속하는 것이 대표적이죠. #include #include “파일명” #include 문은 다른 파일에 있는 내용을 포함시키는 매크로 구문이예요. 개발도구를 설치하면서 함께 설치한 파일들이 있는..

Part 13. 제어문 II (반복문, 별출력)

C언어 - 반복문, 별출력 00:20 반복문 01:14 [실습] while문 1에서 100까지 합계 구하기 02:30 [실습] do while문 1에서 100까지 합계 구하기 03:11 [실습] do while문 음수 입력 전까지 합계 구하기 04:34 [실습] for문 1에서 100까지 합계 구하기 05:43 별출력 05:51 [실습] 별출력 - 속이 빈 정사각형 출력 41. 반복문 (while, do while, for) 반복문은 특정 조건이 참일 동안 반복해서 구문을 수행하는 구문이예요. C언어에서는 세 가지 종류의 반복문을 제공합니다. while(조건 표현식) 반복 수행 구문; do 반복 수행 구문 while(조건 표현식); for(초기 수행문; 조건 표현문; 조건 변화 구문) 반복 수행 구문; ..

[C++] 3. 입출력 개요 (cin, cout)

3. 입출력 개요 (cin, cout) C++ 입출력 개요 cin cout 여기에서는 앞으로 C++ 문법 학습하기 위해 필수적으로 사용할 입출력에 관한 사항을 간략하게 살펴보기로 할게요. C언어에서는 stdio.h 파일을 포함하여 표준 입출력 함수들을 사용했었죠. C++에서도 C언어에서 제공하는 함수들을 사용할 수 있어요. 하지만 C++언어에서 콘솔 화면에 출력하거나 키보드에서 입력받을 때 printf 함수나 scanf 함수를 사용하는 이들은 거의 없어요. C++ 언어에서는 iostream 파일을 포함하여 cout과 cin 개체를 사용할 수 있어요. iostream은 STL(Standard Template Library,표준 템플릿 라이브러리)에서 제공하는 클래스이며 cout과 cin은 미리 선언한 전역..

[C++] 1. 들어가기에 앞서 2. C++ 언어 소개 및 책의 기술 범위

C++ 언어 소개 1. 들어가기에 앞서 이 책은 C언어를 학습한 이들을 이가 C++언어를 학습하기 위해 작성하였습니다. C++언어는 C언어와 변수나 연산, 함수 등의 기본 문법은 비슷하지만 클래스와 템플릿 문법을 있습니다. 특히 C++ 언어에서 클래스는 OOP(Object Oriented Programming, 개체(혹은 객체) 지향 프로그래밍) 방식으로 프로그래밍할 수 있게 새롭게 추가한 문법이죠. 이러한 특징으로 인해 C언어와 C++은 접근 방식에서 많은 차이를 갖고 있습니다. 이 책은 C++입문자를 위한 책이지만 단순히 C++문법을 다루고 있는 책은 아니예요. 오히려 C++에 새롭게 추가한 문법을 OOP에 어떻게 활용하는지에 관한 부분이 많습니다. 이를 위해 문법 외에도 OOP의 특징과 OOP 프로..

Part 12. 제어문 I (조건문과 선택문)

C언어 - 제어문 (조건문, 선택문) C언어 - 제어문 실습 (조건문, 선택문) 00:14 조건문 00:53 [실습] if 문 - 홀수일 때 출력 01:58 [실습] if else 문 - 3의 배수인지 판별하여 출력 02:53 선택문 03:49 [실습]if 문으로 학점 출력하기 06:10 [실습] switch case 문으로 학점 출력하기 39. 조건문 (if else) C언어에서는 조건에 따라 수행할 작업을 판단하거나 반복해서 수행하는 등의 제어문을 제공해요. 조건 표현식에 따라 구문을 수행하는 조건문과 조건 표현식이 참일 동안 반복해서 구문을 수행하는 반복문, 표현식의 값에 따라 수행할 위치를 선택하는 선택문 등이 있어요. 그리고 미리 특정 코드에 대응하는 표현을 약속하는 매크로 구문을 제공하고 있어..

정리하기 (연산자)

1. 다음리터럴상수로초기값을설정하는선언문중에서오류가있는것을고르시오. a. char c = “hello”; b. int i = ‘a’; c. char c = 38; d. char c = 0xC; 더보기 답: a “hello”는 문자열이며 char 형식을 원소로 하는 배열이나 포인터 형식 변수로 사용할 수 있습니다. 2. 다음코드를수행했을때출력결과를예측하시오. printf(“%d\n”, 8^8); 더보기 답: ^ 연산은 비트 자리별로 같으면 0이고 다르면 1로 계산하는 연산입니다. 좌항과 우항이 같은 수이므로 모든 자리는 같으며 따라서 결과도 모든 자리가 0입니다. 3. 다음코드를수행했을때출력결과를예측하시오. printf(“%d\n”, 2

Part 11. 대입, 증감, 기타 연산자

C언어 - 대입, 증감, 기타 연산자 00:14 대입 연산자 01:09 [실습] 대입 연산자 l-value 01:42 [실습] 복합 대입 연산자 02:19 [실습] 대입 연산자 우선 순위 03:27 증감 연산자 03:57 [실습] 증감 연산자 05:15 기타 연산자 05:28 [실습] 콤마 연산자 06:30 [실습] 형 변환 연산자 07:05 [실습] sizeof 연산자 07:45 [실습] 삼항 조건 연산자 35. 대입 연산자 =, +=, -=, *=, /=, %= 등 대입 연산은 변수의 값을 설정할 때 사용하는 연산이죠. 이러한 이유로 대입 연산의 좌항에는 상수 표현은 올 수 없으며 l- value라 불러요. 대입 연산자에는 우항의 값을 좌항에 대입하는 단순 대입 연산과 좌항과 우항의 값을 더하거나 빼..

Part 10. 비트 연산자와 쉬프트 연산자

C언어 - 비트 연산자, 쉬프트 연산자 00:19 비트 연산자 01:22 [실습] 비트 연산자 02:44 xor 연산을 이용한 대칭형 암호화 03:28 [실습] xor 연산을 이용한 대칭형 암호화 05:46 쉬프트 연산자 07:00 [실습] 쉬프트 연산 32. 비트 연산자 & | ^ ~ C언어에서는 비트 단위로 논리 연산을 수행하는 비트 연산을 제공하고 있어요. 비트 연산의 피연산자는 정수 형식이 올 수 있어요. 이항 연산자 &는 비트 단위로 논리곱 연산을 수행하죠. 예를 들어 6&5를 하면 6은 이진수로 110이고 5는 이진수로 101이므로 6&5의 연산 결과는 이진수 100이고 10진수 4예요. 이항 연산자 | 는 비트 단위로 논리합 연산을 수행하죠. 예를 들어 6|5의 연산 결과는 이진수 111 이..

Part 9. 산술, 논리, 비교 연산자

[C언어] 산술, 논리, 비교 연산자 00:19 산술 연산 00:35 [실습] 부호 연산 01:35 [실습] 사칙 연산 04:05 [실습] 나머지 연산 05:32 논리 연산자 05:46 [실습] 논리 연산 07:18 [실습] 논리 연산에서 주의할 점 09:03 비교연산자 09:18 [실습] 비교 연산자 10:01 비교 연신에서 주의할 점 29. 산술 연산자 프로그래밍 언어는 관리해야 할 데이터를 위한 문법도 제공하지만 수행해야 할 코드를 작성하는 문법도 제공하죠. 이번에는 C언어에서 수행할 코드를 작성하는 가장 기본적인 문법인 연산자를 다룰게요. C언어에서는 사칙 연산이나 논리 연산, 비트 연산을 비롯하여 30여 가지의 연산자를 제공하고 있어요. 여러분은 책에 나온 예제 코드를 직접 작성하여 하나 하나 ..

Part 8. 표준 입출력

C언어 - 표준 입출력 23. 표준 입출력 개요 2024년 4월 3일에 새롭게 제작하여 유튜브에 업로드할 예정입니다. 프로그래밍 언어의 문법을 익히고 프로그래밍 작성 능력을 키우려면 기본적인 입출력 기능은 사용할 수 있어야겠죠. C언에서는 다양한 입출력 방법을 제공하는데 여기에서는 표준 입출력 함수 중에 자주 사용하는 함수를 살펴볼게요. 이미 앞에서 설명없이 사용했던 printf 함수는 대표적인 표준 입출력 함수예요. 표준 입출력 함수를 사용하려면 stdio.h 파일 포함문이 필요하죠. #include 여기에서는 stdio.h에서 제공하는 많은 함수 중에 세 가지 표준 출력 함수와 다섯 가지 표준 입력 함수를 소개할게요. int printf(const char * format, … ); int putch..

명명법과 형식 정리하기

21. 명명법 C언어에서는 변수 이름, 함수 이름, 사용자 정의 형식의 태그 이름 등을 개발자가 정할 수 있어요. C언어에서는 개발자가 정하는 이름은 다음 규칙을 따라야 하죠. 예약어를 사용할 수 없음 첫 문자로 숫자 문자를 사용할 수 없음 언더 바를 제외한 기호 문자를 사용할 수 없음 같은 블록 내에 같은 이름을 선언할 수 없음 참고로 예전에는 한글로 이름을 정할 수 없었는데 지금은 한글로 정할 수 있어요. 프로그래밍을 할 때 이름을 대충 정하면 생각이 나지 않아 확인하는 비용도 들어요. 여러 개발자가 같이 개발할 때는 이러한 문제로 예상하지 못한 비용이 추가로 발생하곤 하죠. 많은 개발자들은 서로 이해하기 쉽게 나름의 규칙을 정하여 이름을 결정하고 있어요. 이 책에서는 다음과 같은 규칙으로 이름을 결..

Part 7. 실수 표현과 메모리 구조

C언어 - 실수 표현과 메모리 구조 19. 실수는 근사치 0.1에서 0.5사이에 몇 개의 실수가 있을까요?\ 여러분이 아는 것처럼 무한 개의 실수가 존재하죠. 따라서 0.1과 0.5 사이의 모든 실수를 유한한 메모리에 표현할 수 없어요. 실제로 컴퓨터에서 실수 표현은 오차 범위 내에서 값을 표현하는 근사치예요. C언어에서는 실수 형식으로 float 형식과 double 형식을 제공해요. float 형식은 4바이트이며 double 형식은 8바이트예요. 그리고 C언어에서 실수 표현은 기본적으로 double 형식으로 취급하며 float 형식을 표현할 때는 뒤에 f를 붙여요. 그렇지만 C언어에서 실수 형식 사이에는 서로 묵시적 형변환을 제공해서 실수 뒤에 f를 붙이지 않아도 가능하답니다. 물론 값 잘림 현상이 발..

Part 6. 정수 형식의 표현 범위와 Overflow 값 잘림 현상

[C언어] Part 6. 정수 형식의 표현 범위와 Overflow 값 잘림 현상 17. 정수 형식의 표현 범위 char 형식과 unsigned char 형식은 정수를 표현할 때도 사용할 수 있다고 했어요. 두 가지 형식 모두 1바이트를 할당하여 256가지의 정수를 표현할 수 있답니다. unsigned char 형식은 부호 없는 정수만 표현하므로 0~0xFF(0~255)까지 표현 가능해요. char 형식은 최상위 비트가 0인 0x00~0x7F(0~127)까지는 부호없는 정수예요. 그리고 최상위 비트가 1인 0x80~0xFF(-128~-1)까지는 부호있는 정수죠. ◈ char 형식과 unsigned char 형식의 표현 범위 확인 #include int main() { char c = 0; unsigned ..

Part 5. 문자 형식과 ASCII 코드

Part 5. 문자 형식과 ASCII 코드 15. ASCII 코드 C언어 - 문자 형식과 ASCII 코드 C언어에서 char 형식은 -128~127까지의 정수를 표현할 수 있는 정수 형식이예요. 형식 이름을 보면 알 수 있듯이 char 형식은 문자를 표현할 때 많이 사용하죠. 미국 표준 기구(ANSI, American National Standards Instutitute)에서는 영문 알파벳과 숫자 문자와 여러 기호를 아스키 코드로 정의했어요. 아스키 코드에는 128개의 문자를 약속하고 있답니다. 최초의 아스키 코드는 하드웨어 사이에서 주고 받는 신호를 약속한 것으로 제어 신호도 포함하고 있어요. char 형식이 8비트(1바이트)죠. 첫번째 비트는 0이고 나머지 비트를 아스키 코드를 이용하여 표현해요. ..

Part 4. 부호 있는 정수 표현 방법

Part 4. 부호 있는 정수 표현 방법 12. 부호 있는 정수 표현 - 부호 비트 필드 C언어 부호있는 정수 표현, 부호 비트 필드, 1진 보수, 2진 보수 메모리에 부호있는 정수를 표현하는 방법은 여러가지 방법이 있어요. 그 중에 대표적인 방법이 부호비트 필드 방식, 1진 보수 방식, 2진 보수 방식이 있죠.(C언어의 정수 형식은 2진 보수 방식을 사용하고 있어요.) 이제 이 세가지 방법을 알아봅시다. 먼저 부호 비트를 이용하는 방법을 알아볼게요. 부호비트 필드 방식에서는 첫 번째 비트를 부호비트로 사용하는 방식이예요. 첫 번째 비트가 1이면 부호있는 정수이고 0이면 부호없는 정수인 것이죠. 그리고 나머지 비트는 크기를 나타내요. 예를 들어 8비트의 메모리에 10010001 값이 들어있다면 첫번째 비..

Part 3. 형식과 메모리 크기, 진수 표현

Part 3. 형식과 메모리 크기, 진수 표현 [디딤돌 C언어] Part 3. 형식과 메모리 크기, 진수 표현 9. 기본 형식(TYPE) 프로그래밍 언어에서는 데이터를 표현하는 문법으로 형식과 변수를 제공해요. 형식은 데이터의 종류와 표현 범위에 따라 메모리 크기와 범위를 약속하고 있어요. 실제 메모리가 필요할 때 형식을 지정하여 변수를 선언하면 약속한 메모리를 할당받아 사용할 수 있어요. C 언에에서 제공하는 형식에는 문자, 정수, 실수를 표현할 때 사용하는 기본 형식이 있어요. 그리고 여러개의 원소를 연속적인 메모리에 할당받아 사용하는 배열과 프로그램의 메모리 주소를 기억하는 포인터도 있죠. 이 외에 개발자가 프로그램에 필요한 형식을 정의하는 문법을 제공합니다. 개발자가 정의하여 사용하는 형식을 사용..

정리하기 (C언어 소개 ~ 첫 번째 프로그램, Part 1, 2)

1. C언어는 Bell 연구소에서 운영체제(O/S)를 만드는 과정에서 사용한 B언어을 발전한 프로그래밍 언어입니다. B언어는 어떠한 운영체제를 만드는 과정에서 사용했나요? 더보기 답: Unix 2. 프로그래밍 언어에서 데이터 종류에 따라 필요한 메모리 사이즈와 표현 방법을 약속하는 것은 무엇입니까? 더보기 답: 형식 3. 콘솔 프로그램의 진입점 함수 이름은 무엇입니까? 더보기 답: main 4. 표준 입출력을 사용하기 위해 포함시켜야 하는 헤더 파일 이름은 무엇입니까? 더보기 답: stdio.h 5. 표준 출력 파일에 포멧에 맞게 출력하는 함수 이름은 무엇입니까? 더보기 답: printf 6. 편집한 소스 파일을 기계어로 번역하는 것을 무엇이라 부릅나요? 더보기 답: 컴파일 7. C언어에서 주석을 표현하..

Part 2. 첫 번째 프로그램 Hello, World!

[디딤돌 C언어] Part 2. 첫 번째 프로그램 Hello, World! 6. 첫 번째 프로그램 만들기 이제 처음으로 간단한 프로그램을 만들어 봐요. 프로그램 언어를 공부할 때는 머리로 이해하는 것도 필요하지만 받드시 개발 도구에서 만들어 보는 것이 필요해요. 책의 내용을 머리로 이해했다고 만족하지 마시고 개발도구로 만들어 보세요. 이번에 만들 프로그램은 콘솔 화면에 “Hello, World”를 출력하는 프로그램이예요. 여러분은 이 과정을 통해 개발 도구에서 C언어로 프로그램을 만드는 과정을 익힐 수 있어요. 그리고 C언어의 문법 요소도 간단히 살펴볼 수 있답니다. 여기에서는 Microsoft Visual Studio 2022 개발 도구를 사용할게요. (2023년 12월 26일 현재 동영상에서는 Vis..

Part1. C언어 소개

C언어 - C언어 소개 [유튜브 동영상 강의] 1. 들어가기에 앞서 아래 동영상 강의는 예전에 만든 동영상 강의입니다. 이 책은 컴퓨터 프로그래머를 꿈꾸는 이들을 위해 만들었어요. 컴퓨터 프로그래머가 하는 작업 중에 가장 기본은 원하는 작업을 컴퓨터가 수행할 수 있게 논리를 전개하는 것이죠. 그리고 컴퓨터가 수행할 수 있는 프로그램을 작성하기 위해 프로그래밍 언어와 개발 도구를 이용하는 것입니다. 많은 이들은 컴퓨터 프로그래밍을 학습하는 것은 책을 보고 머리로 이해하는 것이라 생각하는 것 같아요. 하지만 실제 컴퓨터 프로그래밍을 효과적으로 학습하려면 머리를 이용하는 것 외에도 자신의 논리를 종이에 적고 그림을 그리고 자료를 검색하고 아는 이들에게 물어보는 등의 사용할 수 있는 모든 자원을 활용하는 것이 ..

원형 큐 - 버퍼의 모든 공간 사용

1. 개요 및 알고리즘 안녕하세요. 언제나 휴일입니다. 이번에는 원형 큐 중에서 버퍼의 모든 공간을 사용하는 소스 코드입니다. 큐는 자료를 한쪽으로 보관하고 다른쪽에서 꺼내는 FIFO(First In First Out) 방식의 자료구조입니다. 큐에 자료를 보관하는 연산을 PUT 혹은 ENQUEUE라 말하고 꺼내는 연산을 GET 혹은 DEQUEUE라고 말합니다. 그리고 보관할 위치 정보를 rear, 꺼낼 위치 정보를 front라고 말해요. 원형 큐에서는 rear와 front를 다음 위치로 이동할 때 index = (index+1)%QSIZE 로 이동합니다. PUT 연산 IF Queue Is full (꽉차면) Overflow (버퍼오버플로우) Else (꽉차지않을때) Buffer[rear] = data (..

원형 큐 - 버퍼를 동적으로 생성

1. 소개 및 알고리즘 안녕하세요. 언제나 휴일이예요. 이번에는 버퍼를 동적으로 생성하는 원형 큐를 살펴보아요. 큐는 자료를 한쪽으로 보관하고 다른쪽에서 꺼내는 FIFO(First In First Out) 방식의 자료구조입니다. 큐에 자료를 보관하는 연산을 PUT 혹은 ENQUEUE라 말하고 꺼내는 연산을 GET 혹은 DEQUEUE라고 말합니다. 그리고 보관할 위치 정보를 rear, 꺼낼 위치 정보를 front라고 말해요. 원형 큐에서는 rear와 front를 다음 위치로 이동할 때 index = (index+1)%QSIZE 로 이동합니다. PUT 연산 IF Queue Is full (꽉차면) Overflow (버퍼오버플로우) Else (꽉차지않을때) Buffer[rear] = data (버퍼의 rear..