// Main.c
//챕터 2 - 1 : 연산자와 피연산자, 산술 연산자, 복합 대입 연산자, 값 식 문
#include <stdio.h>
int main(void)
{
int A = 10;
int B = 5;
int C = 2;
printf("%d\n", A + B); // 15
printf("%d\n", A - C); // 8
printf("%d\n", A * B); // 50
printf("%d\n", A + B + C); // (A + B) + C
printf("%d\n", A + B * C); // A + (B * C)
printf("%d\n", A * B / C); // (A * B) / C
printf("%d\n", A *= 3); // A = A * 3
printf("%d\n", A /= 3); // A = A / 3
return 0;
}
// 값(Value)은 리터럴, 식(Expression)은 피연산자와 연산자로 이루어져서 값으로 귀결되는 것들. 문(Statement)은 컴퓨터가 수행할 명령어
// Main.c
// 전치/후치 증감 연산자
#include <stdio.h>
int main(void)
{
int Num = 5;
printf("%d", ++Num); // 지금 당장 Num의 값이 1 증가한다.
printf("%d", Num++); // 다음 줄에 Num의 값이 1 증가한다. 12번째 줄에 +1이 된다.
printf("%d", Num--); // 다음 줄에 Num의 값이 1 감소한다. 13번째 줄에 -1이 된다.
return 0;
}
// Main.c
// 논리연산자, 비교연산자
#include <stdio.h>
int main(void)
{
//C언어에서는 오직 0만 거짓(false)으로 분류된다.
printf("%d", 3 && 0); // 1 && 0 == 1 * 0, A와 B가 전부 true면 연산결과가 true, 현재 값은 false
printf("%d", -2 && 1); // 1 && 1 == 1 * 1, A와 B가 전부 true면 연산결과가 true, 현재 값은 true
int A = 5;
printf("%d", 3 < A && A < 10); // A가 3보다 클 때와 A가 10 보다 작을 때의 경우를 연산한 것. 3 < A && A < 10 == 1 * 1, 현재 값은 true
printf("%d", 3 < A && A < 5); // A가 3보다 클 때와 A가 5 보다 작을 때의 경우를 연산한 것. 3 < A && A < 5 == 1 * 0, 현재 값은 false
printf("%d", -7 || 1); // 1 || 1 == 1 + 1, A와 B 중에 하나라도 true면 연산결과가 true, 현재 값은 true
printf("%d", 0 || 0); // 0 || 0 == 0 + 0, A와 B 중에 하나라도 true면 연산결과가 true, 현재 값은 false
printf("%d", 0 || 1); // 0 || 1 == 0 + 1, A와 B 중에 하나라도 true면 연산결과가 true, 현재 값은 true
int B = 3;
printf("%d", 0 == B || B == 3); // B가 0과 같거나 3과 같을 때의 경우를 연산한 것, 0 == B || 1 == B == 3, A와 B 중에 하나라도 true면 연산결과가 true, 현재 값은 true
printf("%d", 5 != 1); // 5와 1의 값이 다른 경우인지 확인하고 참이었기에 현재 값은 true
printf("%d", 1 != 1); // 1과 1의 값이 다른 경우인지 확인하고 거짓이었기에 현재 값은 false
int C = 6;
int D = 6;
int E = 7;
printf("%d", C != E); // C와 E의 값이 다른 경우인지 확인하고 참이었기에 현재 값은 true
printf("%d", C != D); // C과 D의 값이 다른 경우인지 확인하고 거짓이었기에 현재 값은 false
printf("%d", 5 == 1); // 5와 1의 값이 같은 경우인지 확인하고 거짓이었기에 현재 값은 false
printf("%d", 1 != 1); // 1과 1의 값이 같은 경우인지 확인하고 참이었기에 현재 값은 ture
// 그리고 -> &&
// 이거나 -> ||
// 다르다 -> !=
// 같다 -> ==
return 0;
}
// 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);
//예제
int A = 9;
printf("%.2f\n", A / (float)2); // 형이 변환되었기에 int 타입이었어도 소수점자리 까지 표시된다.
printf("%.2f\n", (float)A / 2); // 연산자 내에 어느 항목에 기입해도 적용된다.
return 0;
}
// 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);
//예제
int A = 9;
printf("%.2f\n", A / (float)2); // 형이 변환되었기에 int 타입이었어도 소수점자리 까지 표시된다.
printf("%.2f\n", (float)A / 2); // 연산자 내에 어느 항목에 기입해도 적용된다.
// 삼항 연산자의 구조 : 조건식 ? 전방값 : 후방값
// 조건식을 보고 참일 경우 전방값을 출력하고, 거짓일 경우 후방값을 출력한다.
printf("%d\n", 4 < 5 ? 2 : 9); // 4는 5 보다 작기에 참, 전방값인 2가 나온다.
printf("%d\n", 9 < 2 ? 2 : 9); // 9는 2보다 크기에 거짓, 후방값인 9가 나온다.
return 0;
}