03.04 - sizeof, 조건부 연산자 (Conditional operators)
sizeof operator
Operator |
Symbol |
Form |
Operation |
Sizeof |
sizeof |
sizeof(type) sizeof(variable) |
Returns size of type or variable in bytes |
'02.03 - 변수 크기와 sizeof 연산자'에서 sizeof
연산자를 다루었다. sizeof
연산자는 변수에도 사용할 수 있으며, 해당 변수의 크기를 반환한다.
#include <iostream>
int main()
{
double d = 5.0;
std::cout << sizeof(d);
}
조건부 연산자 (conditional operator)
Operator |
Symbol |
Form |
Operation |
Conditional |
? : |
c ? x : y |
If c is nonzero (true) then evaluate x, otherwise evaluate y |
조건부 연산자 ? :
는 C++의 유일한 삼항 연산자(피연산자가 3개)이기 때문에 '삼항 연산자'라고도 한다.
? :
연산자는 if-else
문을 더 간결하게 사용하는 방법을 제공한다.
일반적인 if-else:
if (condition)
expression;
else
other_expression;
다음과 같이 작성할 수 있다:
(condition) ? expression : other_expression;
이와 같은 방법은 읽기 좀 더 쉽다.
또 다른 예로, 변수 x
와 y
중 더 큰 값을 찾기 위해 다음과 같이 작성할 수 있다:
if (x > y)
larger = x;
else
larger = y;
larger = (x > y) ? x : y;
읽기 쉽고, 우선순위를 확실하게 하기 위해 조건 부분에 괄호()
를 넣는 게 일반적이다.
? :
연산자는 우선순위가 매우 낮다.
예를 들어, 콘솔에 x
와 y
중 더 큰 값을 출력하려면 다음과 같이 해야 한다:
f (x > y)
std::cout << x;
else
std::cout << y;
이걸 삼항 연산자로 바꾸면:
std::cout << ((x > y) ? x : y);
<<
연산자가 ? :
연산자보다 우선순위가 더 높으므로 만약 ()
가 없다면:
std::cout << (x > y) ? x : y;
는 다음과 같이 평가된다.
(std::cout << (x > y)) ? x : y;
x > y
라면 1이 출력되고, 그렇지 않으면 0이 출력된다.
이 포스트의 원문은 http://www.learncpp.com/cpp-tutorial/34-sizeof-comma-and-conditional-operators/ 입니다.