7주차 예습과제
<강의 주제>
6-1: 연산자 기본개념, 우선순위, 결합성 / 6-2: 산술연산자(+ - * / % +(부호) -(부호) )
6-3: 대입(할당) 연산자 =, +=, -= 등 / 6-4: 관계연산자(부등호, ==. !=)
6-5: 논리 연산자 / 6-6: 비트 연산자 / 6-7: 삼항 조건 연산자
6-8: 증가 감소 연산자 / 6-9: cast 연산자와 콤마 연산자
6-10: sizeof 연산자와 유니코드 / 6-11: 주소연산자(&)
6-12: 첨자, 구조체멤버접근, 간접참조연산자 / 6-13: 연산자 과제 및 정리
<강의 정리>
# 연산자의 개념과 종류
- 연산자(operator)는 변수 또는 상수에 대하여 무엇인가를 행하도록 하는 단어나 기호
- 피연산자(operand)는 연산자가 연산을 하는 대상
# 토큰과 구두점
토큰)
C프로그램을 구성하는 기본 단위
- 예약어(reserved word, keyword): int, if 등 44개
- 연산자(operator): +, / 등 40여개
- 구두점(punctuator): [], () 등 50여개
- 식별자(identifier): 변수, 함수, 배열, 구조체 등의 이름
- 리터럴(literal): 10, 3.5, ‘a’, “hi”
구두점)
- 토큰을 구분하기 위해 사용하는 기호로 50여개가 있는데 40여개는 연산자로 사용
# 연산자의 우선순위
- 한 수식에 연산자들이 여러 개 있을 때 우선순위가 제일 높은 것을 괄호 안의 수식이다.
- 괄호들이 중첩되어 있을 때는 내부 괄호가 우선순위가 높음
- 사칙연산은 *,/, 그 다음 +,- 순으로 운선순위가 높고 우선순위가 같으면 왼쪽에서 오른쪽으로 연산을 진행.
- 대입연산자(=, +=, -= 등)는 오른쪽에서 왼쪽으로 실행
# 논리연산자: &&, ||, !
- &&(AND), ||(OR), !(NOT)
- &&와 ||는 두 개의 피연산자가 필요
- &&연산자는 두 피연산자가 모두 참일 때 참
- ||연산자는 둘 중 하나만 참이면 참
- ! 연산자는 한 개의 피연산자가 필요
- !연산자는 피연산자가 참이면 거짓, 거짓이면 참으로 만듦.
# 관계연산자+논리연산자
- score 값이 90이상~95 미만이면 A출력
- 수학적으로는 아래와 같음
if(90<=score<95) : x
f(90<=score<95)
- 관계 연산자는 우선순위가 같으면 왼쪽에서 오른쪽으로 연산을 진행하는 결합성을 가짐
- C언어에서는 다음과 같이 표현
if(score>=90&&score<95) : O
질문: 연산자 종류 중 3항(ternary)은 주로 어떨 때 사용하나요?