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 |