🍒(산술)연산자 : + - * / 와 같은 기호
🍒분류
단항연산자
이항연산자
삼항연산자
🍒산술연산자
a=10, b=2인경우
3+a*b -> 23
2+a-b -> 10
4-a/b -> -1
주의) / ->'몫' % ->'나머지' 를 구함
또한, %사용시 피연산자는 반드시 정수여야 한다
a%4-b -> a나누기4-2=0
printf("1+2=%d", 1+2);
🍒대입연산자
l-value r-value(위치에따라)
int a, b;
a = b = 1;
printf("a+b=%d", a+b);
🍒축약대입연산자
+=, -=, /=, %=
산술연산자와 대입연산자를 이어 붙임
a += b + 2; //a = a + (b + 2) 14
a -= b + 2; //a = a - (b + 2) 6
a *= b + 2; //a = a * (b + 2) 40
a /= b + 2; 2
a %= b + 2; 2
주의) 왼쪽 피연산자는 반드시 변수여야 한다
int x =5, y = 10;
x += y; //x = x + y
pritnf("the addition is : %d", x);
결과-> the addition is : 15
🍒증감연산자
증가연산자 ++ -> 변수값 1 증가
감소연산자 -- -> 변수값 1 감소
ex) n++ -> 증가 이전 값
++n -> 증가된 이후 값
int n = 10;
printf("%d",n++) -> 10 <증가 전 그 자체의 값>
pritnf("%d",n) -> 11 <그 다음에 증가됨을 적용시킴>
-----
printf("%d",++n) -> 11 <미리 더한다>
printf("%d",n) -> 11
🍒조건연산자
? : 조건에 따라 주어진 피연산자가 결과값이 되는 삼항연산자
x ? a : b
x가 참이면 결과는 a , 거짓이면 b
🍒관계연산자
왼 == 오 : 왼쪽과 오른쪽이 같은가?
비교 결과가 참이면0 , 거짓이면 1
*기타 : != 는 같지않다는 말
🍒논리연산자
&& : and
|| : or
! : not
0, 0.0, \0 : 거짓 ->이거아닌 모든 정수와 실수, 문자는 참
🍒단축평가
피연산자 두개 중에 왼쪽 피연산자만으로 논리연산결과가 결정된다면
오른쪽 피연산자는 평가하지 않는다
🍒올림변환
정수 + 실수 -> 실수 + 실수 -> 실수 가나옴
ex) 7 + 5.2 -> 7.0 + 5.2 -> 12.2
double b = 3; -> 3에서 실수3.0으로 변환되어 b에 저장이 됨
내림변환
int a = 3.4; -> 3.4에서 3으로 변환되어 a에 저장이 됨
명시적 형변환
🍒sizeof
바이트 단위의 정수
콤마연산자
왼쪽과 오른쪽 연산식을 계산하며 결과값은 오른쪽의 결과
연산자결합법칙
좌에서 우로 수행 : 대부분의 연산자
우에서 좌로 수행 : 우선순위가 2위인 전위의 단항연산자, 13,14위인 조건,대입연산자
int n = 10, m = 5;
n += m /= 3;
->11 (m/=3은 1이고 n += 1 은 11)
'언어 > C' 카테고리의 다른 글
[C언어] 정보처리기사 프로그래밍 문제 풀이 (0) | 2022.02.10 |
---|---|
1주 ~ 7주 정리 (0) | 2021.04.23 |
조건과 반복 (0) | 2021.04.09 |
변수 선언 (0) | 2021.03.30 |
3주차 c언어 (0) | 2021.03.22 |
댓글