반응형
expression(표현식)
프로그램 언어에서 값을 나타내기 위해서, 변수나 상수, 연산자로 구성된식, 표현식은 항상 결과(반환)값을 갖음
- 일차식
- 상수
- 괄호식
- 전위연산자 수식
- 후위연산자 수식
- 단항식
- 이항식
- 삼항식
- 할당 수식
1. 일차식
-
식별자,변수이름(identifier)
-
iNum, fLength, INT_MAX 등등
-
연산자(operator) 없이 오직하나의 피연산자(operand)로 이루어진 가장 기본적인 형태
2. 상수(Constants)
-
5, 3.14, 'A', "HelloWorld" 등등
3. 괄호식(Parenthetical Expression)
-
(2*3)+4, (a = 23+b*) 등등
4. 전위 연산자 수식
-
연산자(operator)가 피연산자(operand) 앞에 오는 형태
-
x = ++a;
- a = a+ 1; // a의 값에 + 1을 한 값을 a에 대입한다
- x = a // x에 a의 값을 대입한다,
- ++a 는 a가 1증가한 이후의 값이다, 변수의 참조보다 먼저 연산을 수행
5. 후위 연산자 수식
-
연산자(operator)가 피연산자(operand) 뒤에 오는 형태
-
x = a++;
- x = a // x에 a의 값을 대입한다
- a = a + 1 // a의 값에 +1을 한 값을 a에 대입한다.
- a++ 은 a가 1증가하기 이전의 값이다, 변수의 참조 후에 연산을 수행
※전위연산자, 후위연산자는 오직 변수만 피연산자로 가능
상수나 일반 수식을 피연산자로 사용 불가능
int a = ++10; // 상수에는 불가능
(a+1)--; // 일반 수식 에도 불가능
6. 단항식(Unary epxression)
-
피연산자(operand)즉 연산자에 적용되는 항이 한 개 있는 표현식(expression)
-
전위, 후위 증감 연산자 : ++a, --a, a++, a--
-
sizeof
-
부호 연산자 : +a, -a
-
여기서 산술연산자와 부호연산자가 같다고 생각할 수 있지만, 다르다, 산술연산자는 연산자가 피연산자 사이에 올때만 가능하다, 1+a, 2-a, a*b, a/b, a%b
-
형변환(casting) 연산자, (자료형)변수 : (float) iNum
-
주소 연산자(&) : &iNum
-
역참조 연산자 * : *ptr_iNum;
7. 이항식(Binary expression)
- 연산자가 피연산자 사이에 있음
- 산술연산자 : a + 7 , 3 + 4, b - 11, 5%2 등
- 논리 연산자 : !, &&, ||, &, |, <, >, <=, >=, ^
8. 삼항식(Ternary expression)
- a ? B : C
-
조건식 A가 참이면 값 B를 아니면 값 C
- int result = a > 3 ? 1 : 0; // a가 3보다 크면 1을 result 에 대입, 아니면 0을 result 에 대입
9. 할당수식(Assignment expression)
-
a = 7
- 우측의 값을 좌측의 저장장소에 저장 하라는 의미
- 할당 연산자를 기준으로 좌측은 Lvalue 라고 하고 우측을 Rvalue 라고 한다
- Lvalue는 또다른 명칭으로 locator value이며 저장 장소를 뜻한다,
- Rvalue는 evaluated value, value of an expression 즉 수식의 결과 값이다
반응형
'C' 카테고리의 다른 글
memset, memcpy, memmove (0) | 2020.03.13 |
---|---|
Local Variable, Global Variable, Static Variable (0) | 2020.02.28 |
fseek, ftell, 파일 크기 알아내기 (0) | 2020.02.25 |
FileStream Input Output (0) | 2020.02.22 |