[C++] Pointer | 포인터
Pointer 포인터 - 포인터는 값 자체가 아닌, 값이 저장된 메모리 공간의 주소를 저장하는 변수이다. Address Operator "&" (주소연산자 "&") - 변수가 저장된 메모리 공간의 주솟값을 반환하는 연산자이다. Ex. 주소 연산자 사용 예시 int donuts = 7; cout
Pointer 포인터 - 포인터는 값 자체가 아닌, 값이 저장된 메모리 공간의 주소를 저장하는 변수이다. Address Operator "&" (주소연산자 "&") - 변수가 저장된 메모리 공간의 주솟값을 반환하는 연산자이다. Ex. 주소 연산자 사용 예시 int donuts = 7; cout
Enumeration (enum) 열거체 - 기호 상수를 만드는 방법 중 하나이다. - Enumeration(열거체)은 enum형 변수를 의미한다. - 열거체에 적용되는 규칙은 꽤 엄격한 편이라서 열거체를 새로운 데이터형을 정의하는 수단으로 활용하기 보다는, 상호 관련이 있는 기호 상수들을 정의하는 용도로 쓰인다. Rules Ex. enum decalration enum spectrum {red, orange, yellow, green, blue, violet}; spectrum : 키워드 "enum"을 통해 만들어진 새로운 데이터형 red...violet : 0 부터 n-1까지의 정수 값에 각각 대응되는 기호 상수들, 이 상수들을 Enumerator(열거자)라고 한다. 차례대로 red는 0, orang..
Union (union) 공용체 - 서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 데이터 형식이다. - 서로 다른 데이터형을 한꺼번에 저장할 수 있는 Structure(구조체) 형식과 대조된다. - 공용체 변수의 크기는 가장 큰 멤버가 차지하는 메모리 크기에 의해 결정된다. - 여러 가지 데이터형을 사용해야 하면서 그것들을 동시에 사용할 필요는 없을 때, 공요체를 사용하면 메모리를 절약할 수 있다. ex) 상품태그 중 일부는 정수ID, 일부는 문자열ID로 식별하는 시스템의 경우 - 공용체는 OS나 H/W 데이터 구조 설계에 사용되기도 한다. Ex. union declaration & usage union one4all { int int_val; long long_val; double doubl..
Structure 구조체 - 다양한 data type의 data를 저장할 수 있게 하는 자료구조이다. - C++ 에서의 구조체는 OOP의 핵심 기능인 Class의 기초이다. - 구조체 또한 Compound data type의 일종으로 함수의 매개변수, 반호로 사용이 가능하다. 구조체의 생성 과정 1. Structure Description (구조체 서술) - 구조체 안에 저장할 여러 가지 data type들을 서술하고 이름을 지정한다. Ex. 구조체 선언부 예시 //Structure Description struct inflatable { char name[20]; float volume; double price; }; \(\texttt{struct}\) - Structure identifier - 구조..
Raw String Raw 문자열 - 일반문자, 특수문자에 관계없이 문자들이 서로 독립적으로 구분되는 문자열 상수이다. - Raw 문자열을 이용하면, 특수문자를 표현하기 위해 따로 Escape Sequence 를 사용할 필요가 없다. - C++11부터 Raw 문자열 기능을 지원한다. Syntax (문법) - 기본적인 Raw 문자열 정의는 아래와 같다: // Ex. 기본적인 Raw 문자열 정의의 일반형 R"(stringConstant)" // 여기서 stringConstant는 표현하고자 하는 Raw 문자열 상수이다. - Raw 문자열의 특징으로 시작 부분과 끝 부분의 " 와 ( 그리고 ) 와 " 사이에 임의의 특수문자를 삽입하여 Raw 문자열의 시작과 끝을 구분하는 Delimiter를 아래와 같이 사용자..
문자열 String - 메모리에 Byte 단위로 일련의 문자들이 저장되어 있는 형태이다. - 문자열은 함수에 매개변수로써 전달될 때, 복사값이 아닌 주소가 전달된다. (문자열이 저장된 배열의 끝엔 항상 NULL 문자가 배치되어 있으므로 문자열의 크기까지 함수에 알려줄 필요가 없다.) - C++에서는 문자열을 두 가지 방식으로 처리한다. 1. C Style : char type array - char type array에 문자들을 순서대로 저장시키고 마지막에 Null Character ('\0', ASCII code 가 0)을 저장함으로써 이 배열의 문자들이 문자열을 구성하고 있음을 표시한다. - cout 객체가 사용하는 함수들을 포함해서, C++에서는 문자열을 처리하는 다양한 함수들을 지원하는 데, 이들..
배열 Array - 데이터 형이 같은 여러 값들을 연속적으로 저장할 수 있는 Data Structure(자료 구조)이다. - 배열에서 각 값은 배열 Element(원소)라는 개별 공간에 저장된다. - Composite Data Type(복합 데이터형)으로 분류된다. - 배열의 선언에 필요한 세 가지 요소는 아래와 같다. 1. 각 원소에 저장될 값의 데이터형 2. 배열의 이름 3. 배열 원소의 개수 (값, 기호상수, 상수수식을 이용하여 표현한다.) // Ex. 배열 선언의 일반형 typeName arrayName[arraySize]; // form // 실 사용 예시 int months[12]; // example int months[MONTH]; // example for symbolic constant..
데이터형 변환 Type Conversions - 피연산자의 데이터형을 혼합하여 사용하면 C++는 데이터형의 불일치를 해결하기위해 다음과 같은 상황에서 자동으로 데이터형 변환을 수행한다. 1. 특정 데이터형의 변수에 다른 데이터형의 값을 대입할 경우 2. 수식에 데이터형을 혼합하여 사용할 경우 3. 함수에 매개변수를 전달할 경우 1. 대입 구문에서의 데이터형 변환 Conversion on Initialization & Assignment - C++에서는 특정 변수에 다른 데이터형의 값을 대입하는 것을 허용하며, 대입되는 값은 대입시킬 변수의 데이터형으로 변환된다. - 단, 대입되는 값의 데이터형에는 변함이 없고, 대입시킬 때 적절하게 변환된 데이터형의 대입값이 복사되어 대입된다. - 범위가 작은 데이터형의..