C++ 기초플러스 6판) 요약

Bogoomi·2022년 8월 10일
0

C++가 상수의 데이터형을 저장하는 방법

std::cout << "Year " << 1492 << "\n" << std::endl;

위와 같은 코드를 프로그램은 어떤 자료형으로 저장할까?

-> C++은 특별한 이유가 없다면 정수형 상수는 모두 int로 저장한다.
그러나, 특정 접미어를 붙이면 다른 자료형으로 저장한다.
예를 들어, 2022L, 2022UL 과 같은 접미어를 붙이게 되면 unsigned long으로 저장한다.
또는
값이 너무 크서 int형으로 저장할 수 없을 때 다른 자료형으로 저장한다.


Char형의 출력

char ch;
std::cout << "원하는 문자 입력 : ";
std::cin >> ch;						// 'M' 입력

std::cout << "입력한 문자 : " << ch << std::endl; 	//결과 : M
return 0;

우리는 M에 해당하는 코드인 77을 직접 입력하지 않고, 문자 'M'을 입력했음에도 프로그램은 'M'을 출력한다. 그 이유는
cin이 키보드로부터 입력된 문자를 코드로 변환하고,
cout은 코드를 문자로 변환해서 출력하기 때문이다.


C++에서 사용하는 타입변환 연산자

// 변수 thorn을 출력한다고 가정
typename(thorn)					// thorn의 typename형을 반환한다!
static_cast<typename> (thorn)	// thorn을 typename형으로 반환한다!

다음 두 구문은 같은 것인가?

char grade = 65;
char grade ='A';

엄밀히 말하자면 다르다.
첫번째 구문은 ASCII 코드를 사용하는 프로그램에서만 문자 'A'를 저장하지만,
두번째 구문은 어떤 시스템이든 'A'라는 문자를 저장한다.


문자열

C스타일의 모든 문자열은 구문 끝에 반드시 NULL문자여야 한다!
널 문자 => '\0'

char bird[11] = "Mr. Cheeps";	// \0을 저장한다.
char fis[] 	  = "Bubles";		// 컴파일러가 알아서 처리.

큰따옴표로 묶인 문자열은 끝내기 널 문자를 암시적으로 가지고 있다.
끝에 널 문자를 명시적으로 넣을 필요가 없다.


new 포인터 변수와 일반 포인터 변수의 다른 점

int higgens;
int *pt = &higgens;		// 일반적인 포인터 사용 예시

int *pn = new int;		// new를 사용한 예시

일반적인 포인터를 사용하게 되면 변수명 higgens를 통해 해당 메모리 주소를 접근할 수 있고, pt를 통해서도 접근 할 수 있게 되어 통로가 2개가 된다.
but, 두 번째 방식과 같이 선언하면 pn이 유일한 메모리 주소에 접근 가능한 통로가 된다.

profile
개에에에바알

0개의 댓글