▶ 삼항 연산자
- 경우에 따라서 if ~ else문을 일부 대체 할 수 있다.
ㄴ 적당한 로직에 활용을 한다면 코드 간결화를 얻을 수 있다.
▶ 문자열
- 문자열이란 문자의 조합을 의미하며 문자열을 활용할 경우 문자가 조합된 단어 또는 문장을 표현하는 것이 가능하다.
- 문자열을 활용하면 화면 상에 문자로 된 정보를 출력하는 작업이 수월하다.
▷ 메모리 단위
- char는 1 byte
ㄴ 메모리 효율문제
ㄴ 배열을 이용해서 눌러 담는 과정이 필요하다.
- 1 byte는 8 bit
ㄴ 1 bit: 0과 1을 표현 할 수 있는 가장 작은 단위.
- 문자를 표현함에 있어 메모리 효율 문제로 int 보다 char형이 어울린다.
ㄴ OS문제로 넘어감.
ㄴ 싱글 코어에서 우선 할당 됨.
- int 형으로 했을 경우 연산이 빠르다. -> 굳이 연산할 일이 없는 문자 표현에는 메모리 낭비를 할 이유가 전혀 없다.
※ BIT -> BYTE -> KB -> MB -> GB -> TB -> PB(페타바이트) -> EB(에타바이트) -> ZB(제타바이트)
ㄴ 메모리 단위
(조건식) ? true : false;
(numA > numB) ? dataA : dataB;
// 조건식이 참이면 dataA 반환 / 거짓이면 dataB가 반환된다.
▶ 주의를 기울여야 할 문자열
ㄴ 메모리 사용량에 지대한 영향
ㄴ 강한 형식 검사
- C / C++은 타입에 엄격한 언어
ㄴ 기본적으로 NULL 지원
★ 면접 문제
- 문자와 문자열의 차이점에 대해
ㄴ 문자는 NULL문자 추가 안된다.
ㄴ 문자열은 NULL 문자가 추가된다.
ㄴ ◇ 메모리 접근이 가능하다.
ㄴ ◇ 오류가 매우 다발적으로 발생 할 수 있다.
ㄴ ◇ 모호함 에러가 발생 할 수 있다.
ㄴ ◇ 항상 명시
ㄴ ◇ 예외처리에 신경 써야 함.
▷ NULL
- iostream에 정의 되어 있다.
- NULL은 0 주소를 의미하며 그렇기에 차후 배울 포인터 변수를 초기화 할 때도 사용 할 수 있다.
char* p = NULL == char* p = 0;
int n = NULL != int n = 0;
- 전자는 p라는 변수의 주소값에 0을 넣는 것이고 후자는 정수 0을 n에 넣겠다라는 의미이다.
- C / C++ 언어의 문자열 표현 방법
ㄴ C / C++ 언어는 "" 조합을 통해서 문자열을 표현하는 것이 가능하며 이때 char의 배열을 이용한다.
ㄴ 또한, 문자열 상수를 통해 초기화를 진행 할 경우 널 문자를 명시적으로 기입하지 않아도 된다.
char arr1[] = { 'h' , 'i' , '~' };
// 문자만 저장된 배열 -> 문자열이라고 할 수 없다.
char arr2[] = { 'h' , 'i' , '~' , '\0' );
// 문자열 배열
- 문자 배열과 문자열의 차이점은 \NULL(\0) 의 포함 여부
- 문자열 저장을 목적으로 char형 배열을 선언 할 경우 \NULL 은 문자열 마지막에 자동으로 삽입된다.
- 널 문자의 아스키 코드 값은 0이다.
ㄴ 그리고 이를 문자 형태로 출력 할 경우 아무런 출력이 발생하지 않는다.
★ C / C++ 언어에서는 문자열이 되기 위해서 반드시 널 문자를 포함해야 한다.
ㄴ 이유? 끝을 나타내기 위해
'기초지식' 카테고리의 다른 글
08-2. 4대 문자열 (0) | 2023.05.17 |
---|---|
08-1. 사용자 정의 자료형 (0) | 2023.05.16 |
06-2. 난수 + 셔플 (0) | 2023.05.13 |
06-1. 배열 (0) | 2023.05.11 |
05-3. 전처리기 (0) | 2023.05.11 |