
C언어를 배우기 전 컴퓨터의 구조에 대한 이해는 필수적입니다. 그래서 다음 컴퓨터의 핵심 부품에 대해서 간단하게 알아보려고 합니다.그리고 컴퓨터 프로그램 실행순서에 대해서도 알아보겠습니다.CPU (중앙처리장치)메모리(SSD, RAM)중앙처리장치는 프로그램의 연산을 실행

프로그래밍 언어에서 여러종류의 데이터를 식별하는 분류를 말합니다. DataType은 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 마칠 수 있는 명령들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정합니다. 간단하게 말하자면, '데이터를 표현하는 방

수학의 연산자가 수학적 연산을 위한 약속된 기호인 것처럼, C언어의 연산자도 C언어에서 제공하는 다양한 연산을 위해 약속된 기호이다.산술연산자 : + - \* / %부호연산자 : + -관계연산자 : < > <= >= == !=논리연산자 : && || !조건연

시작하기에 앞서 C/C++ 같은 C언어계열은 일방적 실행흐름을 가지고 있습니다. 이럴때 실행흐름을 제어하기 위해 사용하는 것을 제어문이라고 합니다.제어문의 종류에는 조건문 분기문 반복문 등이있습니다.조건문은 말 그대로 어떠한 조건에 참(TRUE)인지 거짓(FALSE)인
코드결과코드결과코드결과코드결과코드결과코드결과코드결과코드결과코드결과코드결과

배열은 연관된 데이터를 모아서 관리하기 위해서 사용되는 DataType입니다. 예를 들어서 '좋은 아파트'의 가구별 가족 수를 저장 및 갱신하는 프로그램을 만든다고 가정해보겠습니다. '좋은 아파트'는 10층까지 있고 각층에는 네 가구씩 살고있습니다. 그렇다면 가구별 가

구조체라는 것은 하나 이상의 변수(포인터 변수와 배열 포함)를 묶어서 새로운 자료형을 정의하는 도구입니다. 즉, 구조체를 기반으로 우리는 새로운 자료형을 정의할 수 있습니다. 예를 들어 학생관리용 프로그램을 만든다고 하면 학생에 관련된 데이터를 저장합니다. (ex.학번
1. 포인터란? 포인터는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 말합니다. 포인터가 가리키는 값을 가져오는 것을 역참조라고 합니다. C언어에는 메모리공간의 주소값을 다루는 DataType을 가지고 있습니다. 그 DataTyp

C언어에서 배열과 포인터는 거의 세트로 묶을 정도로 많이 쓰입니다. 그 이유는 배열의 특징 때문입니다. 도대체 배열의 무슨 특징이 포인터와 연관성이 있을까요?"배열명이 배열의 주소값이라 그런거 아니에요?"이렇게 생각하셨다면 정답입니다. 배열의 주소값은 배열의 첫 번째

프로그래밍에서 함수(fuction)란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다.C프로그램은 이러한 함수들로 구성되며, 포함된 함수들을 사용하여 프로그램의 목적을 달성하게 됩니다.쉽게 말해서, 동일한 코드가

C언어에서 바뀔 수 있는 어떤 값을 보관하는 곳을 변수 라고 합니다. 영어로는 Variable 이라 하는데, 말 그대로 바뀔 수 있는 것들 이라는 뜻입니다. 하지만 변수에도 다양한 종류의 변수가 존재합니다. 접근 범위, 존속 기간으로 변수를 구분하기도 합니다. 변수를

1. 함수의 인자 전달 방식 Call by value(값에 의한 호출) Call by value는 함수가 인수로 전달받은 값을 복사하여 처리하는 방식입니다. 변수가 가진값을 복사하여 전달하므로 함수 내에서 값을 변경해도 원본 값은 변경되지 않습니다. 따라서 값의
배열은 단순히 일차원 배열만 있는 것이 아닙니다. 다차원 배열도 충분히 가능합니다. 따라서 이차원 배열에 대해서 알아보도록 하겠습니다. 참고로 일차원 배열과 이차원 배열만 아신다면 다차원배열도 무리없이 아실 수 있을거라고 생각합니다. 1. 배열의 선언 일차원 배열을
1. 문자열과 문자배열 처음에는 C언어에는 문자배열만 다뤘다고 합니다. 문자배열은 말 그대로 문자로 이루어진 배열이기 때문에 문자배열의 선두번지 주소값, 배열의 요소의 갯수를 둘 다 전달해야하는 불편함을 가지고 있었습니다. 그에 따른 오류확률도 올라갔습니다. 그러한
문자열의 문자 갯수 세어주는 함수 C언어는 0은 거짓, 0이외 숫자는 참코드결과pdest: 문자열 복사 공간 psrc: 문자열의 소스 리턴값: 복사된 문자열의 선두번지 주소값코드결과문자열 비교해주는 함수 문자열이 같으면 0을 리턴, 다르면 1을 리턴코드결과문자열 str

메모리 공간은 크게 4가지로 나뉩니다. Code영역, Data영역, Heap영역, Stack영역입니다. 그 중 Heap영역에만 뭐가 들어가는지 정확하게 알아보지 않았습니다. 한 번 예를 들어보겠습니다. 여러분이 함수에 값을 대입하여 계산한다고 생각하겠습니다. 이런 함수

1. 구조체 변수 C언어 기반 프로그램에서는 어떤 변수라 하더라도 동적할당이 가능합니다. 동적할당이
1. 동적으로 만든 이차원배열 만약 동적으로 이차원 배열을 할당한다고 가정해보겠습니다. 앞에서 이차원 배열에 대해서 배울때 이차원배열을 평면으로 생각하면 편하다고 했습니다. 그러나 이차원 배열은 사실 1차원 배열 여러개를 붙여놓은 느낌이었습니다. 또 배열명 자체가 주소

함수도 하나의 DataType입니다. 명령어를 저장하는 DataType입니다. 따라서 함수도 메모리공간에 할당됩니다. 그 말은 즉, 주소값을 가집니다. 그래서 함수도 함수 포인터로 가리킬 수가 있습니다.함수의 주소값을 값으로 갖는 변수를 함수 포인터 변수라고 합니다.

코드가 길어지고 함수가 길어지면, 가독성이 점점 떨어집니다. 하지만 방대한 양의 데이터를 다루려면 코드와 함수가 길어질 수 밖에 없는 진퇴양난의 상황에 빠지게 됩니다. 그래서 이것을 해결하기 위해 분할컴파일을 사용합니다.즉, 하나의 프로그램을 여러 개의 소스 파일로 나
컴파일 과정에서 컴파일 하기 전에 헤더 파일을 포함하고 매크로 확장을 하는 단계입니다. 따라서 전처리 과정에서 사용할 수 있는 매크로 치환 및 적용에 대해서 알아보겠습니다.매크로 상수는 어떤 글자를 숫자로 바꾸는 것입니다.이런식으로 선언했다고 한다면, 전처리기에 의해서

1. 파일 파일은 우리가 실제로 흔히 아는 그 파일을 뜻합니다. C언어에서는 이러한 파일을 활용하여 입출력이 가능합니다. 지금껏 데이터를 변수에만 저장하여 활용했었는데요. 사실 변수에 저장한 데이터는 프로그램이 종료되면 유지되지 않기 때문에 영구적으로 기억할 수 없습

공용체는 구조체와 같은 새로운 DataType을 선언하는 것입니다. 근데 아주 결정적인 차이점을 가지고 있습니다. 구조체는 변수 선언에 따라 멤버변수 전체의 공간만큼 할당을 받습니다. 예를 들면, 구조체 안에 int형 변수 2개에 char형 변수 1개가 있다면, 총 9