• 3.2.1 sizeof 연산자
  • 3.2.2 쉼표 연산자(Comma operators)
  • 3.2.3 조건 연산자(Conditional operators)

3.2.1 sizeof 연산자

 

sizeof는 그동안 많이 사용했지만 이걸 함수로 생각해야 할지 연산자로 생각해야 할지 고민해볼 시간을 가지진 않았다. C++에서 함수는 마지막에 ()를 사용하여 끝내는데, sizeof는 괄호가 필요 없다. 이에 따라 sizeof를 연산자로 생각하는게 타당하다.

#include <iostream>

int main()
{
	using namespace std;

	float floatNumber;

	cout << sizeof(float)		<< endl;
	cout << sizeof floatNumber	<< endl;

	return 0;
}

sizeof를 사용할 때 가장 많이 사용하는 것은 자료형을 괄호로 감싸서 사용하는 것이나 두 번째 예시를 보면 괄호가 필수적으로 사용되는 것은 아님을 알 수 있다.


3.2.2 쉼표 연산자(Comma operators)

 

쉼표 연산자, 콤마 연산자에 대해서도 크게 생각해보는 시간이 없었는데 이번 기회에 간단하게 정리할 수 있었다. 쉼표 연산자는 모든 연산자들 중에 우선순위가 가장 낮은 연산자이다. 일반적으로 같은 자료형의 메모리 식별자를 선언해줄 때 사용하는데, 개인적으로 모호해질 수 있는 경우가 많아 자주 쓰는 형태는 아니었다.

#include <iostream>

int main()
{
	using namespace std;

	int number01 = 3, number02 = 10;
	int number03 = (++number01, ++number02);

	cout << number01 << " " << number02 << " " << number03 << endl;

	return 0;
}

이런 형태로 코드를 구현하는 경우는 매우 드물겠지만 이처럼 작성하는 경우 number03에 어떤 수가 어떻게 들어갈지 굉장히 모호해진다.


3.2.3 조건 연산자(Conditional operators)

 

삼항 연산자로도 불리는 조건 연산자는 의외로 많이 쓰이는 연산자이다. 간단한 조건에 대한 판단을 할 때 코드가 짧아질 수 있고 가독성 또한 높아진다. if else문으로 다루는 것과 다르지 않지만 어떠한 조건에 의해 여러 줄로 코드를 수행하는 경우가 아니라면 쓸만한 연산자이다.

#include <iostream>

int main()
{
	using namespace std;

	// conditional operator (arithmetic if)
	bool onSale = true;

	int price;

	if (onSale)
		price = 10;
	else
		price = 100;

	cout << price << endl;

	// price를 const로 쓰고싶다면?
	const int constPrice = (onSale == true) ? 10 : 100;

	int bb = 5;
	cout << ((bb % 2 == 0) ? "even" : "odd") << endl;

	return 0;
}

삼항 연산자는 조건이나 반환하는 값이 간단할 때만 사용하자. 삼항 연산자의 반환값은 같은 자료형으로 쓰는 걸 권장한다.

+ Recent posts