본문 바로가기
공부정리 및 기록/[C언어] 프로그래밍

3. 입·출력 함수와 연산자(2)

by 9월스튜디오 2020. 5. 28.

 

1. 연산자

 

1)

*연산자

: 임의의 자료에 대해 각종 연산을 수행하도록 하는 기호.

산술 연산자 : + - * / % ++ --

관계 연산자 : > < >= <= == !=

논리 연산자 : & || !

대입 연산자 : += -= *= /= %= <<= >>= != &=

조건 연산자 : ?:

비트 연산자 : & | ^ ~ << >>

기타 연산자 : sizeof() cast & *

 

(1)산술 연산자

: 피 연산자에 대해 사칙연산을 포함한 각종 산술 연산을 수행하는 연산자

①이항 연산자 : 2개의 자료를 대상으로 산술적인 처리를 수행하는 연산자

[+ - * / ] : 가/감/승/제 (ex: i+5)

[%] : 나눗셈의 나머지 계산 (ex: i%5)

② 단항 연산자 : 1개의 자료만을 대상으로 산술적인 처리를 수행하는 연산자

[-] : 부호의 반전 (ex: -50)

[++] : 1 증가 (ex: i++, ++i --- 앞이든 뒤든 순서대로 계산함)

[--] : 1 감소 (ex: i--, --i)

 

(2) 관계 연산자

: 피 연산자에 대한 대, 소관계를 비교하는 연산자

[==] : 같은가의 여부를 비교 (ex: a==b ---> a와b는같다.)

[!=] : 다른가의 여부를 비교 (ex: a!=b ---> a와b는같지않다.)

[ > >= < <= ] : 대,소관계 비교 (ex: a>=b ---> a는b보다크거나같다.)

 

(3) 논리 연산자

: 피 연산자에 대해 논리연산을 수행하는 연산자

[&&] : 논리곱 (AND) 양쪽 모두 참일 때만 사용 (ex: a&&b )

[ || ] : 논리합 (OR) 양쪽 중 하나라도 참이면 참 (ex: a||b )

[!] : 논리부정 (NOT) 오른쪽이 참이면 거짓, 거짓이면 참 (ex: !a )

 

(4) 대입연산자

: 연산자의 오른쪽을 왼쪽에 대입

[=] 예: a=5 → a에 5를 대입

[+=] 예: a+=5 → a=a+5 →→ a에 5를 더한 후 결과를 a에 대입

[-=] 예: a-=5 → a=-5 →→ a에 5를 빼고 결과를 a에 대입

[*=] 예: a*=5 → a=a*5 →→ a에 5를 곱한 후 결과를 a에 대입

[/=] 예: a/=5 → a=a/5 →→ a에 5를 나눈 후 결과를 a에 대입

[%=] 예: a%=5 → a=a%5 →→ a에 5를 나눈 후 그 나머지를 a에 대입

[|=] 예: a|=5 → a=a|5 →→ a와 5에 대해 bit 단위의 OR연산을 한 후 결과를 a에 대입

[&=] 예 : a&=5 → a=a&5 →→ a와 5에 대해 bit단위의 AND연산을 한 후 결과를 a에 대입

[^=] 예: a^=5 → a=a^5 →→ a와 5에 대해 bit단위의 XOR연산을 한 후 결과를 a에 대입

[<<=] 예: a<<=5 → a=a<<5 →→ a의 값을 5bit 좌로 이동 후 결과를 a에 대입

[>>=] 예: a>>=5 → a=>>5 →→ a의 값을 5bit 우로 이동 후 결과를 a에 대입

 

(5) 조건 연산자

: 주어진 조건의 만족 여부에 따라 지정된 수식을 수행하는 연산자

* 형식 : (조건)? 수식1 : 수식2;

*기능 : 조건이 성림하면(참이면) 수식 1을 수행하고,

조건이 성립되지 않으면(거짓이면) 수식 2를 수행한다.

* 사용예 : x=(5>2)? 1:0;

 

(6) 비트 연산자

: 수치에 대해 bit 단위의 연산을 수행하는 연산자

[& (bit AND)] 예:a&b → 대응되는 두 bit가 모두 1일 때만 결과는 1

[| (bit OR)] 예: a|b → 대응되는 두 bit 중 하나라도 1이면 결과는 1

[^ (bit XOR)] 예: a^b → 대응되는 두 bit가 서로 다를 때만 결과는 1

[~ (bit NOT)] 예: ~a → 1은 0으로, 0은 1로 함.

[<< (bit 좌로 이동)] 예: a<<2 → a의 값에 대해 2비트 왼쪽으로 이동 (이동시 빈자리는 0이 자리함)

[>> (bit 우로 이동)] 예: a>>b → a의 값에 대해 2비트 오른쪽으로 이동 (이동시 빈자리는 0이 자리함)

 

(7) 기타 연산자

[ sizeof() ]

* 형식 : sizeof(자료)

*기능 : 지정한 자료형, 상수, 수식, 변수가 차지하는 기억공간의 크기(byte)를 구함.

*예: sizeof(int)

[ cast(형변환) ]

* 형식: (형명칭)자료;

* 기능 : 이미 지정한 자료형을 강제적으로 다른 자료형으로 바꿈.

[&] : 주소 연산자로서 피 연산자의 주소를 나타냄

[*] : 내용 연산자로서 피 연산자의 내용을 가져옴.

 

 

 

2. 연산자 우선순위

 

1) 우선순위 정리표

 

 

 

 

댓글