
int main(){
int a = 5;
int b = 3;
printf("%d\n", a+b)
printf("%d\n", a-b)
printf("%d\n", a*b)
printf("%d\n", a/b)
printf("%d\n", a%b)
return 0;
}
#include <stdio.h>
int main(){
int n1 = 5;
int n2 = 3;
printf("%d %d\n", n1/n2, n1%n2);
n1 = 5;
n2 = -3;
printf("%d %d\n", n1/n2, n1%n2);
n1 = -5;
n2 = -3;
printf("%d %d\n", n1/n2, n1%n2);
return 0;
}
#include <stdio.h>
int main(){
int a=5;
int b=3;
a+=b;
printf("%d\n", a);
a*=b;
printf("%d\n", a);
b-=a;
printf("%d\n", b);
return 0;
}
#include <stdio.h>
int main(){
int a=5;
int b=3;
a*=(b+2)*3;
printf("%d\n", a);
return 0;
}
차이점? => 우선순위!
연산자가 앞에 붙으면(전위 연산자) -> 연산 먼저 실행 후 대입
연산자다 뒤에 붙으면(후위 연산자) -> 대입 후 연산 실행
#include <stdio.h>
int main(){
int a=5;
int b=3;
int c = a++;
int d= --b
printf('%d %d %d %d", a,b,c,d);
return 0;
}

##잘못된 사용법!!!
#include <stdio.h>
int main(){
int a=10;
printf("%d", 1<= a <= 5);
return 0;
}
#include <stdio.h>
int main(){
int a = 1, b = 2, c = 3;
int res1 = a<b && b>c;
int res2 = a!=b || c < b;
int res3 = !(c==b);
printf("%d %d %d", res1, res2, res3);
return 0
}

#include <stdio.h>
int main(){
char a = 9; // 0000 1010
char b = 5; // 0000 0101
char a2 = -9; // 1111 0111
printf("a & b = %d\n", a&b);
printf("a | b = %d\n", a|b);
printf("~a = %d\n", ~a);
printf("a ^ b = %d\n", a^b);
printf("a >> b = %d\n", a>>2);
printf("a2 >> 2 = %d\n", a2>>2);
printf("b << 1 = %d\n", b<<2);
return 0;
}
사용방법 - (조건)?(참일 때 반환값):(거짓일 때 반환값)
#include <stdio.h>
int main(){
int a = 3;
int b = 5;
int res1 = (a<b) ? 11: 22;
int res2 = (a==b) ? a:a+b;
int res3 = a?b*b : a*b;
printf("%d %d %d", res1, res2, res3);
return 0;
}
#include <stdio.h>
int main(){
int n = (12,23);
printf("%d", n);
return 0;
}