C

[내배캠자습]C언어 챕터 2-3:형변환 연산자, 삼항 연산자, sizeof

BreadMushroom 2026. 3. 28. 00:26

형변환 연산자(Type-cast Operator)

자료형 A에서 자료형 B로 변환 시켜주는 연산자. 명시적 형변환이라고도 부릅니다.

 

정수끼리의 나눗셈 연산의 결과가 실수로 계산되게끔 하려면?

위에서 정수끼리의 나눗셈 연산 결과는 정수라고 했습니다. 실수로 계산되게끔 하려면 형변환 연산자의 도움을 받아야합니다.

5 / 2; // == 
(float)5 / 2; // == 5.0f / 2 == 2.5f

 

Ex020301) 형변환 연산자

// Main.c

#include <stdio.h>

int main(void)
{
	int Num;

	printf("%.2f\\n", 5 / 2);
	printf("%.2f\\n", 5 / (float)2);

	Num = (int)5.0 / 2;
	printf("%d\\n", Num);

	return 0;
}
// Main.c

#include <stdio.h>

int main(void)
{
	int Num;

	printf("%.2f\\n", 5 / 2); 
    // 5를 2로 나눈값을 소수점 아래 둘째 자리까지만 표시하는 float형식으로 출력하고 줄바꿈 해줘
    //근데 정수끼리의 연산은 정수값으로 도출되어서 float 서식지정자를 사용하면 값이 의도대로 안나옴
	printf("%.1f\\n", 7 / (float)2);

	Num = (int)7.0 / 2;
    //7.0과 2 실수형과 정수형의 계산이지만 7.0의 자료형을 정수형으로 바꾸었기 때문에 정수형끼리의 연산이 됨
	printf("%d\\n", Num);

	return 0;
}

삼항 연산자(Ternary Operator)

피연산자로 세 개의 항을 갖는 연산자. 이후에 배우겠지만, 조건문 if-else의 대용으로 가능합니다.

삼항 연산자 해석이 어렵다면

ex) 4 < 5 ? 0 : 1; 위와 같은 식은 “4 보다 5가 더 크냐?”하고 물어보는 것입니다. 참이라면 :(colon)을 기준으로 앞에 값(또는 식)이 계산 결과가 됩니다. 거짓이라면 colon 뒤에 값(또는 식)이 계산 결과로 나옵니다.

 

Ex020302) 삼항 연산자의 활용

#include <stdio.h>

int main(void)
{
 int Num1, Num2;
 Num1 = 4;
 Num2 = 5;
 
 printf("%d", (Num1 < Num2) ? Num2 : Num1);


    return 0;
}

sizeof

단항 피연산자를 가지며, 피연산자의 자료형 크기를 바이트 단위로 반환합니다.

sizeof(char) // == 1;

char ch; 
sizeof(ch)   // == 1;

 

Ex020303) 아래와 같은 출력에서는 뭐가 나올까요?

int Num1 = 1;
int Num2 = 7;

printf("%d", sizeof(int)); //4
printf("%d", sizeof(Num1));  //4
printf("%d", sizeof(Num1 + Num2)); //4

어찌됐든 모두 다 int자료형이기 때문에 동일한 4byte 

char ABC;
int Num2 = 7;

printf("%d", sizeof(int)); //4
printf("%d", sizeof(ABC));  //1