본문 바로가기
배운 것들 메모/따라 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 5.6 연산자 우선순위와 표현식 트리

by 야속한 낭만 2024. 9. 2.

 

표현식 트리(Expression Tree)

자료 구조에서 배울 수 있다.

 

0.55 스샷

넘어가겠슴다.

 

연산자 우선순위

연산자 결합법칙
() 왼쪽에서 오른쪽
+-(단항unary) 오른쪽에서 왼쪽
*/ 왼쪽에서 오른쪽
+-(이항binary) 왼쪽에서 오른쪽
= 오른쪽에서 왼쪽
 
  1. 단항(unary)연산자는 부호를 표현해주는 연산자인데,
  2. 예를 들어 -3은 3이 먼저 들어가고 그 숫자 앞에 마이너스가 붙는 방식
  3. = (대입 연산자)도 오른쪽에서 왼쪽이다.

● 일반 수학의 괄호()와 컴퓨터에서의 괄호()는 다르다.

 

괄호 연산자 (Parenthesis Operator)

1. 함수 호출에 쓰임

int result = sum(3, 5);

2. 우선 순위 제어

int x = (3 + 5) * 2;

3. 형변환에 사용 <-- 캐스팅(casting) 강의에서 배운다.

float f = (float)3 / 2;

기본 표현식 (Primary Expression)

변수, 상수, 문자열, 리터럴, 괄호로 묶인 표현식 사용

괄호로 묶인 표현식

int x = (3 + 5);

 

‘(3 + 5)’은 primary expression 
즉, primary expression 안에 ()가 포함되고, 연산자로 쓰인 것과는 다르다고는 한다. 

 

결과값에 영향을 안 주는 것을 기본 표현식이라고 하는 듯?

C표준 문서

 

A parenthe sized expression is a primary expression. Its type and value are idenical to those of the unparethesized expression. It is an lvalue, a function designator, or a void expression if the unparenthesized expression is, respecively an lvalue, a function designator, or a void expression.

 

괄호로 감싼 표현식은 기본 표현식(primary expression)입니다. 괄호로 감싼 표현식의 타입과 값은 괄호가 없는 표현식과 동일합니다. 괄호로 감싼 표현식이 괄호 없이 표현했을 때 lvalue, 함수 지정자, 또는 void 표현식이라면, 괄호로 감싼 표현식 역시 동일한 성질(lvalue, 함수 지정자, void 표현식)을 가집니다.

 

사실 잘 이해를 못하겠다.
그니까

(x) = 20; 은 괄호가 없어도 x = 20; 이니까 다르다는 건가?.. 

 


출처:  홍정모의 따라배우는 C언어

강의 외의 추가된 것들은 책 그리고 인터넷 조사해서 얻었음