C++

C++ / 01

cheesecrust1008 2022. 3. 10. 12:31

c++ 주석 방법

1) // 입력 

2) /* */로 주석 처리

 

\는 그 다음줄과 이어준다

예시)

// line splicing 의 예 \

(MACRO 정의)

이럴 경우 두 줄 다 주석처리가 된다.

 

식별자 :

식별자란 변수이름, 함수 이름, 클래스 이름들을 말한다.

 

식별자를 만드는 규칙

– 영문자 대/소문자, 숫자, 밑줄(_) 을 조합하여 만듦

    • 영문자 대/소문자는 구별함

– 숫자로 시작해서는 안됨

– 키워드(keyword)는 식별자로 사용할 수 없음

– 예약된 식별자(reserved identifiers)

    • 다음과 같은 이름은 예약되어 있음

        – 밑줄 한 개로 시작하고 그 다음에 영문자 대문자로 시작하는 이름 (예: _Reserved)

        – 연속된 두 개의 밑줄을 포함하는 경우 (예: __reserved, reserved__identifier)

    • 다음의 경우도 다른 용도로 예약되어 있음

        – 밑줄 한 개로 시작하는 이름

- _를 제외한 특수문자 또한 사용하면 안된다

 

 

상수와 리터럴

상수는 변하지 않는 변수를 뜻한다.

이것이 무슨 말이냐면 상수에는 숫자만 올 수 있는 것이 아니라, 문자열, 객체 등등 다양한 타입이 올 수 있지만,

변하지는 않는다는 이야기 이다.

    - 선언은 const 로 한다.

 

반면 리터럴은 그냥 데이터 그 자체를 의미한다.

따라서 const a = 1; 이라는 식에서 a는 상수, 1은 리터럴이 되는 것이다. 

리터럴이 지칭 하는 것은 비단 숫자 뿐만이 아니라, 문자, 실수 , 포인터, 사용자 지정, 스트링, 불 까지 7종류가 있다.

 

이때에 각각의 리터럴 별로의 특징이있다.

 

정수 리터럴의 특징

• 10진(decimal) 정수 리터럴

    – 10진 숫자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)로 표현

    – 단 가장 높은 자리수는 0이 아닌 10진 숫자여야 함

    – 특별한 접두어는 붙이지 않음

• 2진(binary) 정수 리터럴

    – 이 정수들은 2진 숫자(0, 1)로 표현

    – 반드시 접두어 0b 혹은 0B로 시작

• 8진(octal) 정수 리터럴

    – 8진 숫자(0, 1, 2, 3, 4, 5, 6, 7)로 표현

    – 반드시 접두어 0으로 시작하여야 함

• 16진(hexadecimal) 정수 리터럴

    – 16진 숫자(0~9, a~f, A~F)로 표현

    – 반드시 접두어 0x 혹은 0X로 시작하여야 함

    – 16진 숫자 a/A, b/B, c/C, d/D/, e/E, f/F 는 각각 10, 11, 12, 13, 14, 15를 나타냄

 

그리고 자료형에 따라서 접미어를 붙이기도 한다.

ex) long long int의 경우 ll 아니면 LL 을 접미어로 붙이기도 한다.

 

정리하자면 접두어는 몇 진수인지를 나타내고 접미어는 자료형을 나타낸다.

 

실수 리터럴의 특징

실수 리터럴은 앞에 접두어는 딱히 붙이지 않고 뒤에 지수 부분을 붙이는데 이때의 표현은 e 혹은 E를 와 부호와 숫자를 붙여서 표현한다.

부호가 - 일 때에는 왼쪽으로 소수점을 이동시키고 + 일때에는 오른쪽으로 소수점을 이동시킨다. 

 

문자 리터럴의 특징

    • 이스케이프 코드등을 활용...

    줄내림... 줄 내림은 리눅스 기반은 LF 원도우 기반은 CR + LF 이다. 따라서 리눅스에서 작성된 글 들을 윈도우에서 실행시키면 줄내림이 표현되지 않는다.

여기서의 CR은 carriage return 으로 문자열의 맨 앞으로 이동시키는 것 이고, LF는 바로 밑의 새라인으로 이동시키므로 둘을 합치면 다음줄의 맨 앞으로 줄내림이 되는 것이다.

 

하지만 현대에는 LF의 의미가 NL에 통합되었다. 

문자리터럴에서의 '\000' 이런식으로 표현되의 의미는 \뒤의 8진수로 표현된 숫자들을 10진수로 바꾼후에 그에 맞는 ascii 코드에 대응 되는 값을 나타낸다. 예를 들어서 '\101' 은 8진수의 101을 10진수로 고치면 64 + 1로 65 이다. 아스키코드에서의 65는 A를 나타내므로 A를 출력한다. 이와 비슷하게 '\x41'은 \뒤의 16진수 값에 따른 ㅇ스키코드에서의 값을 뜻한다. 

 

포인터 리터럴은 단 하나만 존제하는데 nullptr로 널 포인터를 말한다. 

 

시용자 정의리터럴은 사용자가 구조채등으 활용햐서 직접 정의하는 것이다. 

 

삼중자

 

삼중자란 세개의 문자를 조합하여 키보드에 없는 한 문자로 치환하여 사용하는것이다.

이는 문제가 많아 제외 되었습니다. 그 문제점은 모두 의도치 않게 사용되어 의도치 않는 결과를 불러오는 것이다. 

 

  

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

c++ 변수의 scope  (0) 2022.04.07
C++ 배열  (0) 2022.04.06
C++ 자료형  (0) 2022.04.06
c++ 함수  (0) 2022.04.06
C++  (0) 2022.04.05