#include <stdio.h>

int main() {

	// char 자료형
	// → 문자를 표현하는 자료형(1바이트의 저장 공간 필요)
	// → 문자 상수(character constant)는 작은 따옴표로 묶어서 표현
	// 상수는 한번 선언한 후에는 값을 바꿀 수 없다
	// (예 → char ch = 'B'로 재선언하면 컴파일 오류!)

	char ch = 'A';

	// 문자열 상수(string constant)는 큰 따옴표로 묶어서 표현
	// 예 → "Hello World!"

	// 출력
	// %c 서식 지정자 - 문자 형태로 값을 출력

	printf("ch = %c\n", ch);

	// 변수 ch에 새로운 값을 대입
	ch = 97;

	printf("ch = %c\n", ch);


	return 0;
}

 


 

#include <stdio.h>

int main() {
	
	// 변수 선언
	int x = 10;
	int y = 4;

	int result;

	// 같은 자료형의 변수를 2개 이상 선언할 때는 쉼표로 연결해서 한 문장에서 같이 선언할 수 있다.
	// int x = 10, y = 4;

	result = x * y;
	printf("result = %d\n", result);

	// <산술 연산 제 1 법칙>
	// 산술 연산의 경우 연산 결과의 자료형은 피연산자의 자료형과 같다
	// → 실수형 값이 정수형 값으로 바뀔 때는 소수점 이하는 버린다.

	result = x / y;
	// → result = 10 / 4;
	printf("result = %d\n", result);
	// → result는 int 자료형이므로 result = 2로 나온다

	// <산술 연산 제 2 법칙>
	// 피연산자의 자료형이 다른 경우 피연산자의 자료형을 맞춘 다음 연산을 수행한다
	// → 이때 표현 범위가 더 큰 자료형으로 맞춘다
	// → 이렇게 자료형이 바뀌는 것을 "자료형 변환"이라고 하고, 이 경우에는 컴파일러에 의해
	//	  자동으로 처리되므로 "묵시적인 형 변환"이라고 한다.

	result = 10.0 / 4;
	// → result = 10.0 / 4.0;
	// → result = 2.5;
	// → 이 경우 변수 result의 자료형이 int 자료형이기 때문에 대입하는 값의 자료형을 int로
	//	  변환한다. 즉 double 자료형 값을 int 자료형으로 변환한 다음 대입하게 된다.
	//    이때 표현 범위가 좁은 자료형으로 자료형이 변환되기 때문에 값에 손실이 생긴다.
	// → result = 2;

	printf("result = %d\n", result);

	// 자료형이 변환되면서 값에 손실이 생기면, 컴파일러는 경고(warning)를 해준다.
	// 이러한 경고를 반드시 확인해서, 경고가 발생하지 않도록 적절한 조치를 해줘야 한다.
	// 그래서 컴파일러가 묵시적인 형 변환을 하기 전에 명시적인 형 변환을 해준다.
	// 이를 위해 형 변환 연산자(cast operator)를 이용한다.
	result = (int)3.5;
	printf("result = %d\n", result);

	// 프로그래밍에서는 0으로 나누는 것을 허용하지 않는다.
	// 심각한 오류가 발생하므로 이런 상황이 나오지 않도록 주의하자!
	x = 10;
	y = 0;
	// result = x / y;
	// printf("result = %d\n", result);

	
	return 0;
}