독개

#따배씨 3.4 sizeof, 쉼표 연산자, 조건부 연산자

by #독개#

#include <iostream>

int main()
{
	using namespace std;

	float a;

//& sizeof
	//두방법으로 사용가능 여기선 둘다 4(byte)
	sizeof(float);	//자료형을 넣음
	sizeof(a);		//변수명을 넣음
	//sizeof는 함수가 아니라 연산자이다. 그렇게 정해놨다 변수명을 적을때는 ()를 빼도된다 sizeof a;


//& comma operator 콤마가 항상 콤마연산자는 아니다 단순히 구분기호로 사용되는 경우가 훨씬많다
	int x = 1;
	int y = 2;
	int z = (++x, ++y);
	cout << x << " " << y << " " << z << endl;		//출력값 2,3,3

	/*
	int z = (++x, ++y); 의미: ++x하고, ++y하고 ++y값을 z에넣어라
	풀어서쓰면
	++x;
	++y;
	int z = y;
	보통 이렇게 풀어서 쓰는경우가 대부분이다
	하지만 콤마오퍼레이터를 쓰는 경우가 반복문에서 잘쓰인다
	*/

	//실수하는 경우를 한번 체크해보겠다

	int a = 1, b = 10; //여기에서 ,는 구분기호다
	int z;
	z = a, b;
	cout << z << endl;	//출력값 1이 나온다 그이유는 =가 ,연산자보다 우선순위가높다
	//(z = a), b; 이렇게 되어있는 거다 그래서 괄호로 싸주는게 좋다

//& conditional operator 조건부연산자 (arithmetric if)
	bool onSale = true;
	//price를 const로 쓰고싶을땐 추가대입 못하니 아래방법으로 안된다 이때 조건부연산자필요
	//그런데 조건이 간단한 경우에만 쓰자
	//복잡한경우나 연산이 복잡한경우에는 쓰지말고
	//const면 함수를 따로만들어서 const int price = getPrice(onSale); 이런식으로 사용하자
	const int price = (onSale == true) ? 10 : 100;

	/* 
	int price;
	if(onSale)
		price = 10;
	else
		price = 100;
	*/
	cout << price << endl;

	cout << ((x % 2 == 0) ? "even" : "odd") << endl; //우선순위때문에 ()로 한번더싸맸다
	//조건부 연산자에서 두 결과의 자료형이 다르게는 쓰지말자
	// (x % 2 == 0) ? 1 : "odd" 이런식으로 사용금지

	return 0;
}

 

 

 

 


🐱‍👓독하게 개발

블로그의 정보

독한 개발자

#독개#

활동하기