728x90

리메이크 중/C,C++ 이론 중심 25

C(&C++) 이론 10. 심화 연산자

내용 참고 C++ 기초 플러스 4판 (Stephen Prata저, 윤성일역 / 성안당) 두두코딩 (https://0xd00d00.github.io/) 연산자(Operator) Ⅲ. 심화 연산자(operator) 설명 아래에서 설명하는 연산자들은 C 및 C++ 혹은 프로그래밍이 처음이라면 '이런 것도 연산인가?'라는 생각을 할 수도 있다. 왜냐하면 아래에서 설명하는 연산자들은 대부분 프로그래밍 상황이 아니라면 쓰일 일이 없기 때문이다. 또한 여기서는 서로 다른 연산자인데도 같은 기호가 사용되는 경우가 있는데 이에 대해서는 '연산자 오버로딩(=연산자 재정의)'에서 자세하게 설명한다. 또한 아직 이야기하지 않은 함수나 클래스, 포인터 등과 관련된 내용이 많으므로 이해가 되지 않으면 레퍼런스로 체크만 해두고 나..

C(&C++) 이론 9. 기본 연산자

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) 연산자(Operator) Ⅰ. 연산자(operator)의 구분 C언어에서 연산자란 컴파일러가 하나 이상의 메모리에 저장된 값에 대해서 특정한 행동을 수행하도록 알려주는 기호를 의미한다. ⅰ. 대략적인 분류 ■ 피연산자의 개수에 따른 분류 : 단항 연산자, 이항 연산자, 삼항 연산자. ■ 기능에 따른 분류 : 산술, 관계, 부호, 증감, 비트 논리, 값 논리, 대입, 삼항 조건 등등 ⅱ. 연산자의 특징 ■ 연산을 하기 위해서는 기본적으로 피연산자들의 자료형이 같아야 한다. ■ 만약 서로 다른 자료형끼리 연산을 하려 할 경우 컴파일러는 기본적으로 경고를 표시한다. ■ 경고를 표시하긴 하지만 C언어는 서로 ..

C(&C++) 이론 8. 데이터 타입과 상수

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) 자료형(Data type)과 상수(Constant) Ⅰ. 자료형/데이터 타입(data type) C언어에서 자료형이란 데이터를 메모리에 저장할 때 알맞은 공간을 할당하고, 적절한 형태로 출력하기 위해서 사용되는 것이다. 1. 기본형 : 하나의 데이터를 저장하기 위해 사용되는 자료형 ■ 문자형 : 문자 하나를 저장하는데 사용.내부적으로는 정수형과 구조가 같다. (char 등) ■ 정수형 : 소수점이 없는 정수 데이터를 저장하는데 사용. (int, long, short 등) ■ 실수형 : 소수점이 있는 실수 데이터를 저장하는데 사용. (float, double 등) ■ void형 : 아직 타입이 지정되어있..

C(&C++) 이론 7. 변수 선언과 기본 데이터 타입

내용 참고 C++ 기초플러스 4판 (성안당) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) 변수 선언과 기본 데이터 타입 ■ 앞에서 변수를 선언하는 것을 보여준적이 있다. ■ 이번에는 변수에 대해서 좀 더 자세히 알아보자. Ⅰ. 변수 선언 int main() { int a; int zero = 0; return 0; } ⅰ. 변수 선언 방법 ■ 위의 코드를 실행하면 변수를 선언만하고 한번도 쓰지 않았다는 warning(경고)가 뜰 것이다. ■ 하지만 딱히 Error(오류)가 뜨진 않고 실행된다. ■ 즉, 거의 모든 코드에 include문이 들어가긴 하지만 반드시 필요한 건 아니라는 뜻이다. ■ 변수 선언은 기본 문법적 내용이기 때문에 변수를 선언하기 전에 ..

C(&C++) 이론 6. 표준 입출력 방법

내용 참고 C++ 기초플러스 4판 (성안당) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) C/C++에서 데이터를 출력해보자. ■ 가장 기본적인 main함수 구조에 데이터 입출력을 위한 구조를 추가해보자. ■ 추가되는 부분 중 중요한 부분은 include 문과 기본 입출력 함수 및 클래스이다. Ⅰ. C언어의 Hello World #include int main() { printf("Hello World \n"); return 0; }​ ⅰ. #include ■ include 명령어는 코드의 가장 상단에 위치하며 코드를 추가하는 역할을 한다. ■ 코드의 맨 윗줄에서 '#'으로 시작하는 명령어들을 '전처리기'라고 하며 가장 먼저 처리되는 코드이다. ■ incl..

C(&C++) 이론 5. main 함수

내용 참고 C++ 기초 플러스 4판 (성안당) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) C/C++ 프로그램의 가장 단순한 형태 ■ 콘솔이나 화면에 아무것도 띄우지 않고, 프로그램을 시작하자마자 끝낸다. int main() { return 0; } ■ C/C++ 프로그램은 '메인 함수'에서부터 시작된다. ■ 함수에 대해서는 이후에 더 자세하게 다룰 것이며 여기서는 'main'이라는 함수에 집중한다. 반환값 함수명(함수인자) { 함수 내용; return 값; (함수의 반환값) } ■ C/C++ 프로그램의 시작점이 되는 함수의 이름은 main 이며 이는 임의로 변경할 수 없다. ■ main 함수의 반환값은 int가 원칙이지만 컴파일러에 따라서 void도 허..

C(& C++)이론 4. 객체 지향

C++의 설계 철학 C++을 개발한 Bjarne Stroustrup은 1994년에 출간된 "The Design and Evolution of C++"에서 C++을 설계 할 때의 원칙을 다음과 같이 기술했다. 1. C++은 엄격하게 타입 검사를 하고, 범용 언어로 사용할 수 있으며, C언어만큼 효율적이고 이식성이 높아야 한다. 2. C++은 여러 가지의 프로그래밍 스타일을 지원할 수 있어야 한다. (절차 지향 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반화 프로그래밍) 3. C++은 만약 잘못될 가능성이 있다고 하더라도 프로그래머가 자유롭게 선택할 수 있도록 설계되어야 한다. 4. C++은 C에서 쉽게 옮겨갈 수 있도록 최대한 C와 호환성이 있어야 한다. 5. C++은 플랫폼에 의존적이거나 일반..

C(&C++) 이론 3. C++의 특징

내용 참고 C++ 기초 플러스 4판 (성안당) 나무위키 C++의 특징 ■ C++은 Bjarne Stroustrup이 C언어에 객체 지향의 클래스 개념을 추가하여 만든 C with Classes로 시작된 언어이다. ■ 구조지향적 언어는 간단한 알고리즘에는 유용하지만 프로그램이 커질수록 코드가 복잡해지는 단점이 있었다. ■ 또한 구조지향적 구조의 핵심인 함수는 다른 코드에서 재사용하기 어렵다는 문제도 있다. ■ 그래서 Bjarne Stroustrup은 C언어를 발전시키기 위해서 simula67의 객체지향 개념을 포함시켰다. ■ 하지만 Bjarne Stroustrup은 C언어를 빠르고 강력하고 유용한 언어로 만드는 것에만 집중하고 있었다. ■ 그래서 그는 곧 C++에 일반화 프로그래밍을 위한 템플릿 기능도 추..

C(&C++)이론 2. C언어와 Cpp언어의 차이점

1. 변수 선언을 변수를 쓰기 전이라면 어디에서 해도 된다. (원래는 스코프 처음에 해야만 했다.) C스타일 Cpp스타일 int main() { int result, a = 3, b = 4;int i; result = a + b; for (i = 0; i < 10; i++) { result += i; } return 0; } int main() { int result, a = 3, b = 4; result = a + b; for (int i = 0; i < 10; i++) { result += i; } return 0; } 2. 'bool형'이 추가되었다. bool형은 참과 거짓만을 갖는 자료형이다. C언어에서는 C99에서 stdbool.h 를 포함하면 사용할 수 있다. 3. 'reference'가 추가..

C(&C++)언어 이론 1. C언어 개요

내용 참고 C++ 기초플러스 4판(성안당) 나무위키 (절차적 프로그래밍 항목 등) 위키백과 (구조적 프로그래밍 항목 등) C언어 개요/ C언어의 특징과 구성 Ⅰ. C언어에 담긴 프로그래밍 패러다임 ⅰ. 절차적 프로그래밍 (Procedural Programming) ■ Procedural Programming이 절차적 프로그래밍이라고 번역이 되었지만, 사실 모든 프로그래밍은 절차적이다. ■ 절차적 프로그래밍은 명령형 프로그래밍의 명령들을 묶어서 추상화 시킨 '프로시저(procedure)'를 추구한다. ■ procedure란 데이터와 이를 처리하는 알고리즘을 함께 묶어서 추상화시킨 것으로서 C언에서는 함수로 표현된다. ■ 절차적 프로그래밍 언어는 프로시저(즉, 함수) 사용을 통해 코드의 재사용성을 극대화시키..

반응형