기타 연산자
삼항 연산자(ternary operator)
삼항 연산자는 다른 언어에는 존재하지 않는 C언어와 C++만의 독특한 연산자입니다.
이 연산자는 C++에서 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다.
삼항 연산자의 문법은 다음과 같습니다.
문법
조건식 ? 반환값1 : 반환값2
물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환합니다.
예제
int num1 = 11;
int num2 = 10;
int result;
result = (num1 < num2) ? num1 : num2;
cout << "둘 중에 더 작은수는 " << result << "입니다.";
실행 결과
둘 중에 더 작은수는 10입니다.
쉼표 연산자
쉼표(,) 연산자는 얼핏 연산자가 아닌 것처럼 보이지만 다양한 용도로 사용되는 연산자입니다.
이 연산자는 어떠한 연산을 수행하는 것이 아닌 다음과 같은 상황에서 사용됩니다.
- 두 연산식을 하나의 연산식으로 나타내고자 할 때
- 둘 이상의 인수를 함수로 전달하고자 할 때
실행 결과
첫 번째 수는 15이고, 두 번째 수는 8입니다.
위의 예제에서 쉼표 연산자는 둘 이상의 변수를 동시에 선언하기 위해서 사용되었습니다.
sizeof 연산자
사용자의 컴퓨터 환경에 따라 타입에 할당되는 메모리의 크기가 달라질 수 있습니다.
sizeof 연산자는 단항 연산자로 피연산자의 크기를 바이트 단위로 반환합니다.
이 연산자의 피연산자로는 타입뿐만 아니라 변수나 상수도 올 수 있습니다.
sizeof 연산자에 변수나 상수가 피연산자로 전달되면, 해당 변수나 상숫값에 해당하는 타입의 크기를 반환합니다.
예제
cout << " char형 데이터에 할당되는 메모리의 크기는 " << sizeof(char) << " 바이트입니다." << endl;
cout << " short형 데이터에 할당되는 메모리의 크기는 " << sizeof(short) << " 바이트입니다." << endl;
cout << " int형 데이터에 할당되는 메모리의 크기는 " << sizeof(int) << " 바이트입니다." << endl;
cout << " long형 데이터에 할당되는 메모리의 크기는 " << sizeof(long) << " 바이트입니다." << endl;
cout << " long long형 데이터에 할당되는 메모리의 크기는 " << sizeof(long long) << " 바이트입니다." << endl;
cout << " float형 데이터에 할당되는 메모리의 크기는 " << sizeof(float) << " 바이트입니다." << endl;
cout << " double형 데이터에 할당되는 메모리의 크기는 " << sizeof(double) << " 바이트입니다." << endl;
cout << "long double형 데이터에 할당되는 메모리의 크기는 " << sizeof(long double) << " 바이트입니다.";
실행 결과
char형 데이터에 할당되는 메모리의 크기는 1 바이트입니다.
short형 데이터에 할당되는 메모리의 크기는 2 바이트입니다.
int형 데이터에 할당되는 메모리의 크기는 4 바이트입니다.
long형 데이터에 할당되는 메모리의 크기는 8 바이트입니다.
long long형 데이터에 할당되는 메모리의 크기는 8 바이트입니다.
float형 데이터에 할당되는 메모리의 크기는 4 바이트입니다.
double형 데이터에 할당되는 메모리의 크기는 8 바이트입니다.
long double형 데이터에 할당되는 메모리의 크기는 16 바이트입니다.