프로그래밍/C

    [C언어 예제-1] 2진수(binary) 출력

    안녕하세요 피터입니다.오늘은 C언어로 2진수를 출력하는 예제를 소개해드리겠습니다. 개요일상 생활에서 우리가 다루는 숫자는 10진법을 사용합니다. 하지만 컴퓨터의 세계는 0과 1로 이루어져있죠. 경우에 따라서는 10진수로 되어 있는 숫자를 2진수로 변환애서 출력해볼 필요가 있습니다. (일반적인 경우에는 16진수로 출력하겠지만요!) 이번에 소개드릴 예제는 양수 또는 음수의 10진수를 입력받아서 2진수로 출력하는 예제입니다. 당연한 얘기겠지만 C언어의 비트 연산자를 사용합니다.연산자에 대한 내용은 아래 글을 참조해주세요. [C언어 강좌-7] 연산자 (Operator) 예제 소스#include int main() { int input = 0; int mask; while (true) { printf("Input..

    [C언어 강좌-12] 함수 (Function)

    안녕하세요 피터입니다.오늘은 C언어의 함수 (Function)에 대해 알려드리겠습니다. 개요수학에서는 함수 이런식으로 표기합니다. y = f(x)여기에서 x 는 함수의 입력값이 되고, y는 출력값이 됩니다. C언어에서 함수(Function)도 이와 유사하다고 볼 수 있습니다.입력값을 가질 수 있으며, 이에 대응되는 값을 출력할 수 있습니다. 문법(Syntax)함수 선언 (Function Declaration) 함수는 다음과 같이 선언할 수 있습니다. DataType FunctionName(DataType, ...); 위와 같은 문장(문장이기 때문에 ; 세미콜론으로 끝납니다)을 함수 선언 또는 함수 원형이라고 합니다. 맨 앞쪽에 있는 DataType이 ReturnType이며 함수의 출력값입니다.Functi..

    [C언어 강좌-11] 포인터 (Pointer)

    개요 안녕하세요 피터입니다. 오늘은 C언어의 포인터(Pointer)에 대해 알려드리겠습니다. 포인터는 C언어를 배우는 많은 사람들이 어려워 하는 개념 중에 하나입니다. 동시에 C언어에서 가장 중요한 개념 중 한가지이기도 합니다. 사실 포인터(Pointer)라는 것은 하나의 데이터 타입(DataType)일 뿐이며 실제 값(Value)를 저장하는 대신에 값이 저장되어 있는 변수의 주소(Address)가 저장된다는 것만 기억하면 어렵지 않습니다. 문법(Syntax) 포인터 타입 정의 (Definition) 포인터 타입을 정의할 때는 기존에 정의된 데이터 타입 뒤에 * (Asterisk) 를 붙이면 됩니다. (애스터리스크 라고 발음합니다) 예를들면 다음과 같이 정의할 수 있습니다. int* char* float..

    [C언어 강좌-10] 배열 (Array)

    안녕하세요 피터입니다. 오늘은 C언어의 배열 (Array)에 대해 알려드리겠습니다. 개요배열은 이전 시간에 포스팅했던 루프(반복문) 과 단짝입니다. [C언어 강좌-9] 반복문 (Loop) 배열 자체가 같은 크기의 메모리 공간을 연속적으로 할당한 것이기 때문에 각 요소(Element)들을 개별적으로 다루는 것보다 루프를 이용해서 접근하면 훨씬 코드가 심플해지고 효율적이기 때문입니다. 루프와 함께 사용하지 않는다면 배열은 단순히 변수를 여러 개 선언한 것과 다를 바 없습니다. 루프의 반복자(iterator)는 배열의 각 항목(item)들에 접근하는 인덱스(index)로 사용하기에 매우 적합합니다. 문법(Syntax) 배열의 선언 배열을 선언하는 기본적인 문법은 아래와 같습니다. datatype arrayna..

    [C언어 강좌-9] 반복문 (Loop)

    안녕하세요 피터입니다.오늘은 C언어의 반복문에 대해 알려드리겠습니다. 개요 반복문은 어떠한 동작을 반복적으로 수행하고자 할 때 사용합니다. 주로 처리해야 하는 데이터가 여러 개인 경우에 효율적으로 처리하기 위해서 씁니다. 순환구조를 갖기 때문에 루프(Loop)라고 부르기도 합니다. 많이 사용되는 표현 중에 영원히 순환하는 루프를 무한루프(infinite loop)라고 하는데 한자와 영어의 합성어로 재미있는 표현입니다. 루프는 대부분의 프로그램에서 필수적으로 들어가는 요소 중에 하나입니다. 일회성으로 기능하고 바로 종료되는 프로그램을 제외하면 사용자가 별도로 종료를 시키기 전까지 계속 실행되는 프로그램들이 훨씬 더 많기 때문입니다. 그러면 지금부터 C언어에서 루프가 어떤식으로 사용되는지 알려드리겠습니다.C..

    [C언어 강좌-8] 조건문 (IF, SWITCH)

    안녕하세요 피터입니다.오늘은 C언어의 조건문에 대해 알려드리겠습니다. 주어진 조건에 따라 분기한다고 해서 분기문이라고도 하는데요, 아래와 같이 크게 세가지 종류가 있습니다. If / ElseSwitch / Case? operator 동작 원리는 거의 같지만 가독성이나 코드의 유연성을 고려하여 상황에 따라 적절하게 사용하시면 됩니다. 1. If / Else if 구문의 기본적인 문법은 다음과 같습니다.if(condition) statement;위 코드를 "만일(if) 조건이 만족하면 statement를 실행하시오." 라고 이해하시면 됩니다. 조건이 만족하는 기준은 condition이 참(true)가 되는 경우입니다. C언어에서 조건문의 참(true)은 0이 아닌 모든 수가 해당되며, 반대가 되는 거짓(fa..

    [C언어 강좌-7] 연산자 (Operator)

    안녕하세요 피터입니다.오늘은 C언어에서 사용되는 연산자(Operator)에 대해서 알려드리겠습니다. 연산자란 컴파일러에게 특정한 수학적 or 논리적 동작을 수행하도록 알려주는 기호(Symbol)입니다. C언어에는 아래와 같은 다양한 연산자들이 제공되고 있습니다. 연산자의 종류별 설명과 쓰임새에 대해 다루고 각 연산자들이 갖는 우선순위에 대해 설명드리겠습니다. 1. 연산자 종류1.1. 산술 연산자 (Arithmetic Operator)가장 익숙한 산술 연산자부터 살펴보겠습니다. 산술 연산자는 말 그대로 수학적인 계산을 하는데 필요한 연산자들입니다. C언어에서는 다음과 같이 사칙연산을 포함한 다양한 산술 연산자를 제공합니다. 예제는 A = 10, B = 20 일때 결과입니다. 연산자 설명 예제 + 두 값을 ..

    [C언어 강좌-6] 기억 영역 분류 (Storage Class: auto, register, static, extern)

    안녕하세요 피터입니다.오늘은 C언어에서 사용되는 Storage Class에 대해 설명드리겠습니다.기억 영역 분류 (Storage Class) Storage Class는 C언어에서 기억 영역을 분류하기 위해서 사용되는 용어입니다. 이 용어는 한글로 번역하기가 애매한 부분이 있는데 일반적으로 기억 영역 분류 또는 기억류 라고 번역되어 쓰이고 있습니다. 이 stroage class는 class 라는 단어가 들어있습니다만, 여기서의 쓰임새는 C++ 의 'class' 키워드와는 전혀 관련이 없습니다. 단지 어떤 것의 종류를 의미하는 사전적인 의미로 class가 쓰인 것입니다. C언어의 storage class에는 auto, register, static, extern 4가지 종류가 있습니다.각각의 class는 상..