본문 바로가기
언어/C

5주차 연산자

by 새벽물망초 2021. 3. 29.

🍒(산술)연산자 : + - * / 와 같은 기호

 

 

🍒분류

단항연산자

이항연산자

삼항연산자

 

 

🍒산술연산자

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

댓글