일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 코딩
- primitive notion
- It
- structure
- proof
- computer
- C
- 문법
- 개발자
- Syntax
- Engineering
- 컴공
- 증명
- Binary
- 정리
- Mathmetics
- 프로그래밍
- Developer
- 공리
- C언어
- coding
- Engineer
- Proposition
- 구조체
- Axiom
- 이진수
- c++
- language
- University
- Programming
- Today
- Total
목록분류 전체보기 (17)
Study Note

여기까지 학습을 하면서 프로그램의 결과를 확인하기 위해 출력함수 printf()를 사용했었습니다. 어느정도 소개하지 않고 넘어가기엔 직관적으로 받아들여지지 않을 수 있는 형식이 있기에 이번 글에서는 이와 같은 입출력을 담당하는 키워드의 사용 구조에 대해서만 간략하게 소개하고 넘어가도록 하겠습니다. printf() printf()는 표준 입출력 라이브러리에 포함되어 있는 함수로, C언어에서 많은 부분의 출력을 담당하는 함수이며 형식을 지정하는 입력을 합니다. 여기서 형식을 지정한다라는 말은 단순히 문자나 문자열을 출력하는 것이 아니라 수 등의 데이터도 출력할 수 있기에 어떤 데이터를 선택하여 출력할지 그 형식을 지정하여 출력한다라는 의미를 갖는 말입니다. 이 함수의 구조를 면밀하게 분석하기 위해선 상위 개..

형변환(Type conversion)이란 데이터의 자료형이 바뀌는 것을 의미합니다. 이런 형변환에는 크게 컴파일러에 의해 자동적으로 수행되는 묵시적 형변환이 있고, 프로그래머가 직접적으로 변경하는 명시적 형변환이 있습니다. 묵시적 형변환 묵시적 형변환은 자동적 형변환이라고도 불리는 형변환으로 크게 세 가지가 있습니다. 첫째로 대입 연산시 일어나는 형변환이 있습니다. 저장할 변수의 자료형과 저장될 데이터의 자료형이 다른 경우 일어나는 형변환 입니다. 여기서 저장될 데이터가 저장할 변수의 자료형으로 바뀌는데, 데이터의 크기가 더 작은 경우 올림 변환(promotion), 데이터의 크기가 더 큰 경우 내림 변환(demotion)이 발생합니다. 올림 변환은 크게 문제가 되지 않지만, 내림 변환은 데이터 손실을 ..

앞선 글에서 변수, 자료형을 컴퓨터 하드웨어 입장에서 살펴보면 메모리에 가까운 파트라고 할 수 있고, 이번 글에서 살펴볼 수식과 연산자는 계산을 담당하는 CPU에 가까운 파트라고 볼 수 있습니다. C/C++ 언어의 연산은 어떤 메커니즘으로 돌아가는지 살펴봅시다. 수식이란? 수식(expression)이란 데이터를 연산 기호로 연결한 식으로 항상 그 결과값을 갖는 형태를 취합니다. 이때, 연산을 하는 주체인 연산 기호는 연산자(operator)라고 말하며 연산을 당하는 객체인 데이터를 피연산자(operand)라 부릅니다. 연산자는 필요한 피연산자의 개수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 나뉘고 연산의 진행방향이 각각 존재합니다. 수식에서 중요하게 이해하고 있어야 할 부분이 있는데, 하나의 연..

현재 과학 기술은 디지털 시스템을 기반으로 많은 발전을 이루고 있습니다. 일상에서 사용하는 컴퓨터, TV, 핸드폰 등의 기기들이 모두 이에 해당되지요. 이런 장치들은 대부분 내재된 프로그램에 따라 작용하는 명령들을 수행합니다. 여기서 디지털이란 상태를 비연속적으로 표현하는 것으로 아날로그와 대비되는 말입니다. 그럼 어떤 수단으로 이산적인 표현을 할까요? 이진수(Binary) 바로 2진수(binary)를 이용하는 것입니다. 2진수가 무엇인지 살펴보기 전에 우리가 일상에서 사용하는 자연수를 예시를 통해 간단하게 분석해보겠습니다. 3172라는 자연수를 10의 거듭제곱으로 표현된 각 항에 계수를 곱하고 이를 모두 더하는 방식으로 표현 했는데요, 너무 당연하게 느껴지는 식이지만 진법에서 가장 기본이 되는 식입니다..

이번 글에선 데이터의 가장 기본 형태 세 가지에 대해 배워보도록 하겠습니다. 간단한게 이런게 있다 정도로 말할 수 있으면 좋겠지만, 데이터의 구조를 자세히 분석해야 앞으로의 사용에 있어서 오류를 방지할 수 있기 때문에 적어도 C언어에선 반드시 짚고 넘어가야 하는 부분입니다. 데이터의 저장 구조 일전에 컴퓨터는 이진 체계의 언어만을 사용한다고 말했었습니다. 이진 체계의 문자는 0 또는 1이라는 비트 뿐인데 어떻게 그 외의 데이터들을 표현할 수 있는 것일까요? 바로 코드화를 시켜주는 것입니다. 즉, 특정 문자를 이진수로 표현된 값에 대응이 되도록 미리 정해두는 것입니다. 예를 들어, 2라는 자연수는 이진수로 11, 31이라는 자연수는 이진수로 11111와 같이 말입니다. 문자의 형태도 마찬가지 입니다. 'a..

이 글에선 우리가 사용할 자료들이 어떤 구조로 이루어져 있는지 상태에 대해 자세히 다루어 볼 예정입니다. (이 부분을 자세히 이해하고 있어야 뒤에 배울 '포인터'라는 개념의 이해가 쉽습니다.) 변수(Variable) 대부분의 프로그램은 내재된 데이터 혹은 외부로부터 입력 받은 데이터를 연산해가며 동작합니다. 즉, 데이터들이 값(Value)이라는 정적인 형태로만 존재하는 것이 아니라 언제든 연산의 과정에서 변화의 과정을 거치게 됩니다. 이때 우리는 이 값들을 담을 일시적인 저장공간이 필요한데 이를 변수(Variable)라고 부릅니다. 변수가 없는 상황을 가정하여, 1+2=3을 계산하는 프로그램을 다음과 같이 만들 수 있습니다. #include int main(){ 1 + 2; } 이 프로그램을 실행시켜보면..

이번에는 C/C++을 위한 개발 환경을 구축하는 방법에 대해 소개하겠습니다. 사실 개발 환경이란게 취향에 따라 혹은 상황에 따라 사용할 수 있도록 일정되지는 않지만, 분명히 많이 선택되는 개발 환경도 존재합니다. 하여 개발 환경에 대해 자세한 내용은 다른 글에서 다룰 예정이고 이 글에서는 C 계열에서 주로 사용되고 있는 Microsoft사의 IDE(Integrated Development Environment)인 Visual Studio를 설치는 과정을 소개하겠습니다. Visual Studio 설치 과정 먼저, Visual Studio 공식 다운로드 페이지인 visualstudio.microsoft.com/ko/downloads/에서 Visual Studio를 다운 받습니다. (현재 최신 버전 16.8)..

이 메뉴에서는 C와 C++을 함께 배워보려고 합니다. C/C++은 교육용으로 만들어진 언어는 아니지만, 컴퓨터를 전반에 걸쳐 이해하는데 굉장히 훌륭한 언어입니다. 특히 전공생들은 입학하여 듣는 첫 강의에서 대부분 C언어를 배우게 될 정도로 기본이 되는 언어라고 볼 수 있습니다. 그렇다면 본격적으로 학습하기 전에 C/C++은 어떤 언어인지 부터 직접 사용하기 위해서 필요한 준비까지 알아보도록 하겠습니다. C/C++의 특징 먼저 C언어부터 살펴보면, 절차지향 프로그래밍(pro-cedural programming)의 대표가 되는 언어라고 할 수 있습니다. 절차지향이란 순차적이라는 말과 동일하게 사용되는데, 이는 컴퓨터의 처리 구조와 비슷하기 때문에 코드의 처리 속도가 우리가 흔히 사용하는 다른 언어에 비해 뛰..