소년코딩

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); // will print the size of variable d in bytes
}

조건부 연산자 (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;

이와 같은 방법은 읽기 좀 더 쉽다.

또 다른 예로, 변수 xy 중 더 큰 값을 찾기 위해 다음과 같이 작성할 수 있다:
if (x > y)
    larger = x;
else
    larger = y;
larger = (x > y) ? x : y;

읽기 쉽고, 우선순위를 확실하게 하기 위해 조건 부분에 괄호()를 넣는 게 일반적이다.

? : 연산자는 우선순위가 매우 낮다.

예를 들어, 콘솔에 xy 중 더 큰 값을 출력하려면 다음과 같이 해야 한다:
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이 출력된다.


cpp 이 포스트의 원문은 http://www.learncpp.com/cpp-tutorial/34-sizeof-comma-and-conditional-operators/ 입니다.

댓글 로드 중…

블로그 정보

소년코딩 - 소년코딩

소년코딩, 자바스크립트, C++, 물리, 게임 코딩 이야기

최근에 게시된 이야기