#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;
}