💻Computer Science/📕개발 언어 (Language) 11

[C][Ch.7] C언어 기초6

C언어 기초 6 구조체 기본 구조체(structure type) : 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입. 즉 기본 타입으로만으로는 나타낼 수 없는 사용자가 원하는 데이터 타입을 새롭게 정의하는 것입니다. 배열이 같은 타입의 변수 집합이라면, 구조체는 다양한 타입의 병수 집합을 하나의 타입으로 나타낸 것입니다. 구조체를 구성하는 변수를 멤버 변수 또는 멤버라고 부릅니다. 구조체의 정의는 아래와 같이 합니다. struct name { int name1; int name2; char name3; float name4; }; //이렇게 정의 struct struct_name variable_name; //다음과 같이 사용합니다. typedef 키워드 typeof는 이미..

[C][Ch.6] C언어 기초5

C언어 기초 5 입출력 기본적인 입출력 C언어에서는 기억장치에 저장되는 파일을 다루는 것처럼 입출력 장치를 다룹니다. 즉 키보드, 마우스 같은 콘솔 장치도 파일처럼 처리합니다. stdin 표준 스트림을 통해서 입력 장치를 다루며, stdout 표준 스트림을 통해서 출력 장치를 다룹니다. 스트림 C 언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림이라는 것을 통해 다룹니다. 스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다. 이러한 스트림은 "stdin", "stdout", "stderr" 등이 기본으로 제공되고 있습니다. EOF C 언어에서는 파일의 끝에 도달했을 때 특별한 값을 반환합니다. 그 값을 EOF (End Of File)이라고 하며, 실제로 이 값은 -1을 ..

[C][Ch.5] C언어 기초4

C언어 기초4 포인터와 배열 배열의 이름은 값을 변경할 수 없는 상수 포인터입니다. 즉 배열의 이름은 배열의 주소값을 저장하고 있는 포인터입니다. 따라서 아래와 같은 응용이 가능합니다. int arr[3] = {10, 20, 30, 40, 50}; printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2]); printf("%d %d %d %d %d\n", *(arr +0), *(arr + 1), *(arr + 2), *(arr + 3), *(arr + 4)); // 위의 두 printf문은 같은 결과를 출력하게 됩니다. 즉 배열의 이름을 활용한 주솟값 연산이 가능하다는 것입니다. 포인터 배열 포인터 배열은 배열의 요소로 포인터 변수를 가진다. int arr_len; int..

[C][Ch.4] C언어 기초3

C언어 기초3 배열 배열이란 ? 배열은 같은 타입의 변수들로 이루어진 유합 집합이다. 배열을 구성하는 각각의 값을 배열 요소 (element)라고 하며, 이러한 요소의 위치를 가르키는 숫자를 인덱스(index)라고 합니다. C언어에서는 인덱스는 0부터 시작합니다. 이러한 배열은 1차원, 2차원, 다차원으로 활용이 가능합니다. //1차원 배열 선언 int num[3]; //1차원 배열 초기화 num[0] = 0; num[1] = 1; num[2] = 2; // 선언과 동시에 초기화 int num[3] = {1,2,3}; // 다차원 배열 int num[2][2] = { {1,2}, {3,4} }; 포인터 주소값이란 ? 데이터의 주소란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. C언어에서는 1바..

[C][Ch.3] C언어 기초2

C 언어 기초2 연산자 연산자(Operator)란 프로그램의 산술식이나 연산식을 표현하고 처리하기 위해 제공되는 다양한 기호를 의미한다. 산술 연산자 "+" : 더하기 "-" : 빼기 "*" : 곱하기 "/" : 나누기 연산 "%" : 나머지 연산 대입 연산자 "=" : 왼쪽에 오른쪽을 대입함 "+=" : 더한 후 대입 "-=" : 뺀 후 대입 "*=" : 곱한 후 대입 "/=" : 나눈 후 대입 "%=" : 나머지 연산 후 대입 증감 연산자 (x는 변수명) "++x" : 1 증가 후 다음 연산 수행 "x++" : 연산 수행 후 1 증가 "--x" : 1 감소 후 다음 연산 수행 "++x" : 연산 수행 후 1 감소 비교 연산자 "==" : 같으면 1 반환 "!=" : 다르면 1 반환 ">" : 왼쪽이 ..

[C][Ch.2] C언어 기초

C언어 기초 C 프로그램의 구조 C언어는 주로 아래와 같은 구조를 가진다. #include 문 #define 문 int func(int a) { // 함수 return 1; } int main(void) { // statement return 0; } 간단한 예제를 들자면 아래와 같다. #include #define TEXT "This is Simple Example" int main() { printf(TEXT)l return 0; } C 프로그램의 특징 C언어는 다음과 같은 특징을 가지고 있습니다. C 프로그램의 기본 단위는 함수이다. 함수 내의 각 명령문은 세미콜론(;)--> 구분자로 끝나야 한다. C 언어는 대소문자를 구분하여 사용해야 한다. 형식을 지키면 자유롭게 프로그래밍 가능하다. ( Pyt..

[C][Ch.1] C언어란 무엇인가 ?

C언어 C언어 개요 C 언어는 현재 사용되고 있는 모든 시스템에서 사용할 수 있는 범용성을 가진 프로그래밍 언어입니다. 주요 운영체제의 커널의 대부분은 C언어를 통해서 구현되어 있으며 시스템 프로그래밍, 모빌리티, 임베디드에 전체적으로 사용되고 있는 언어입니다. 이렇게 C언어가 사용되는 것은 그 특징에 기반한다. C언어는 절차 지향 프로그래밍 언어 이다. C언어의 특징 장점 C언어로 작성된 프로그램은 다양한 하드웨어로의 이식성이 좋습니다. C언어는 절차 지향 프로그래밍 언어로, 코드가 복잡하지 않아 상대적으로 유지보수가 쉽습니다. C언어는 저급 언어의 특징을 가지고 있으므로, 어셈블리어 수준으로 하드웨어를 제어할 수 있습니다. C언어는 코드가 간결하여, 완성된 프로그램의 크기가 작고 실행 속도가 빠릅니다..

[C++] STL : Vector 사용법과 함수

Vecotr Container란 무엇인가 ? 자동으로 메모리가 할당되는 배열 다양한 자료형을 담을 수 있는 배열 아래와 같은 구조를 가지고 있다. Vector 사용법, 생성방법 #include using namespace std; int main(){ // 비어있는 벡터 생성 vector v; // 기본값 0 으로 초기화된 10개의 원소를 가진 vector 생성 vector v(10); // 2로 초기화된 vector 생성 vector v(10,2); //vector 복사 vector v1(v2); return 0; }Vector 내장 함수 V.assign(5,2) 2의 값으로 5개의 원소 할당 V.at(idx) idx번째 원소를 참조 V[idx] idx번째 원소를 참조 V.front() 첫번 째 원소 ..

[C++] STL이란 무엇인가?

STL이란 무엇인가 ? 표준 C++ 라이브러리를 뜻한다. (Standard Template Library) C++ 언어로 프로그래밍 하는데 필요한 자료구조와 알고리즘을 제공하는 라이브러리 이다. STL의 구성 요소 Container 객체를 저장하는 객체, 자료구조 등으로 클래스 템플릿으로 구현되어 있다. ex) array, vector, list, deque, set, multiset, map, multimap Iterator 포인터와 유사한 개념으로 컨테이너의 원소를 가리키고, 접근한다. 다음 워소를 가리키는 기능, 순회 등을 수행할 수 있다. Algorithm 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공 Function Object 함수처럼 동작하는 객체 컨테이너와 알고리즘 등에 클..

[ETC] 메모리 구조

메모리란 프로그램을 실행하기 전에 데이터를 저장하는 공간으로 메인 메모리 (Main Memory), RAM이라는 물리적인 공간에 Load 됩니다. 이러한 메모리는 프로그램을 실행하는데 있어 동적 할당, 코드, 변수 등을 저장해야하고 운영체제는 프로그램의 실행을 위해 아래와 같은 공간을 제공합니다. 1. 코드(Code) 영역 2. 데이터(Data) 영역 3. 스택(Stack) 영역 4. 힙(Heap) 영역 이러한 영역들은 다음과 같이 표현 된다. 1. 코드(Code) 영역 -> 코드(Code) 영역은 실행할 프로그램의 코드, -> 즉 Text로 이루어진 공간입니다. 이러한 코드는 CPU에 의해서 처리됩니다. 2. 데이터(Data) 영역 -> 데이터 영역에는 전역 변수, 정적 변수가 저장됩니다. -> 데이터..