Language/C++

[C++][공통] 기본적인 개념

마탁이 2020. 12. 15. 16:48

1. 프로그램 구조

  - 표현식

   > 표현식은 명령문 내에서 사용되기 때문에 자체적으로 컴파일 될수 없다.

     e.g) (x = 5;)

 

  - 명령문

   > 세미콜론(;)으로 끝나는 것

  - 함수

   > 순차적으로 실행된느 명령문의 집합

   > C++ 프로그램에는 main이라는 특수 함수가 있어야 한다.

 

2. 라이브러리

  - 프로그램에서 재사용하기 위해 "패키지화" 되어 있는 미리 컴파일된 코드의 모음.

  - 라이브러리는 프로그램에서 수행할 수 있는 작업을 확장하는 일반적인 방법을 제공한다.

  - C++ 에서는 추가 기능을 제공하는 C++ 표준 라이브러리를 제공한다.

    e.g) iostream

 

3. 객체

  - 값을 저장하고 사용할 수 있는 메모리 조각

  - C++ 에서 사용하는 대부분 객체는 변수의 형태로 존재한다.

 

4. 변수

  - 이름을 가진 객체

  - 변수를 만들기 위해서는 일반적인 정의(Definition) 라고 불리는 특별한 선언(Declaration)을 이용한다.

  - int x;

    위 명령문이 CPU에 의해 실행되면, RAM으로부터 메모리 조각들이 저장된다. -> 인스턴스화

  - 대입 연산자(=)를 이용하는 것은 할당.

 

5. L-Value / R-Value

  - 일반적으로 대입 연산자(=)의 왼쪽에 위치하면 L-Value, 오른쪽에 위치하면 R-Value 라고 한다.

  - C++ 에서 변수는 L-Value 이다.

    즉, 표현식 이후에도 없어지고 지속된다.

    변수들은 주소를 가지고 있으므로 L-Value 이다.

  - R-Value는 표현식이 종료된 이후에는 더 이상 존재하지 않는 임시적인 값.

 

6. 초기화(Initialization)와 할당(Assignment)

  - 변수가 정의된 후 대입 연산자를 이용해 값을 할당ㅎ할 수 있다.

  - C++ 에서는 변수를 정의함과 동시에 같은 단계에서 초기값을 지정할 수 있다.

    이것을 초기화라고 한다.

    * 변수는 정의될 때만 초기화 할 수 있다.

  - 초기화되지 않은 변수

    > C++에서는 변수를 자동으로 어떤 기본값으로 초기화하지 않는다.

    > 변수가 컴파일러에 의해 메모리 위치가 할당되면,

       그 변수의 기본값은 이미 그 메모리 위치에 할당된 쓰레기 값이 된다.

    > 만약 초기화 하지 않고 사용할 경우 컴파일러는 아래와 비슷한 경고를 출력한다.

          warning C4700: uninitialized local variable 'x' used

 

7. 함수 호출

  - 프로그램은 함수 호출을 만나면 함수 내에서 순차적으로 명령문을 실행한다.

  - 함수 호출은 현재 실행하고 있는 함수를 인터럽트하고 호출한 함수를 실행하도록 CPU에 지시한다.

  - 호출된 함수가 종료되면 CPU는 함수 호출 지점으로 돌아가서 이전 함수를 다시 실행한다.

  - 함수 호출을 하는 함수를 '호출자' 라고 하며,

    호출되는 함수를 '수신자' 또는 'Called Function' 이라 한다.

 

  * main() 함수가 마지막으로 정수 0의 값을 운영체제에 반환하는 이유.

   > 이 값을 상태 코드라고 하며, 프로그램이 성공적으로 실행되었는지를 알려준다.

   > 규칙에 따라 반환한 값 0은 성공을 의미하고 양수 값은 실패를 의미한다.

   > main() 함수에 return 문이 없다면 컴파일러가 사용자를 대신해서 0을 반환한다.

      (그러나 명시적으로 main() 함수에서 값을 반환하는게 좋다)

 

8. 식별자(Identifier)

  - C++ 에서 변수, 함수, 타입 또는 다른 종류의 객체의 이름을 식별자라고 한다.

  - 식별자의 이름을 지정할 때는 따라야 하는 몇 가지 규칙이 있다.

   1) 키워드는 예약이 되어 있으므로 키워드는 식별자가 될 수 없다.

   2) 식별자는 대/소문자, 숫자 및 문자로만 구성될 수 있다.

       (특수 기호나 공백을 삽입할 수 없다.)

   3) 식별자는 대/소문자 또는 '_' 문자로만 시작해야한다.

       (숫자로 시작할 수 없다.)

   4) C++은 대문자와 소문자를 구분한다.

 

9. 리터럴(Literal)

  - 5또는 3.141592... 와 같이 소스 코드에 직접 삽입된 고정 값.

  - 리터럴, 변수 및 값을 반환하는 함수는 모두 피연산자이다.

    (피연산자는 표현식이 작동되는 데이터를 제공한다.)

  - 변수는 보유한 값으로 평가되고, 함수는 반환 형식이 void가 아닌 함수의 반환 값으로 평가된다.

 

 

10. 전방 선언과 정의

  - 컴파일러는 파일의 소스 코드를 순차적으로 읽는다.

    (정의가 되어있지 않으면 앞에서 사용하지 못 함)

  - 전방 성언은 실제로 식별자를 정의하기 전에 전체 식별자의 존재를 컴파일러에 미리 알리는 것.

'Language > C++' 카테고리의 다른 글

[C++] UTF-8 가 ~ 힣 출력 확인 코드  (0) 2021.04.23
[C++] Singleton 패턴을 사용하는 간단한 예제  (0) 2021.03.02
[C++] 포인터, 더블 포인터 사용  (0) 2020.12.15
[C++] 헤더 파일  (0) 2020.12.15
[C++] 헤더 가드  (0) 2020.12.15