Expressions
표현식은 연산을 지정하는 일련의 연산자 와 그 피연산자 로 구성됩니다.
표현식 평가는 결과를 생성할 수 있습니다(예: 2 + 2 의 평가는 4 라는 결과를 생성함), 부작용을 발생시킬 수 있습니다(예: printf ( "%d" , 4 ) 의 평가는 문자 '4' 를 표준 출력 스트림으로 전송함), 그리고 객체나 함수를 지정할 수 있습니다.
목차 |
일반
연산자
| 일반 연산자 | ||||||
|---|---|---|---|---|---|---|
| 대입 |
증가
감소 |
산술 | 논리 | 비교 |
멤버
접근 |
기타 |
|
a
=
b
|
++
a
|
+
a
|
!
a
|
a
==
b
|
a
[
b
]
|
a
(
...
)
|
변환
기타
- 상수 표현식 은 컴파일 타임에 평가될 수 있으며 컴파일 타임 컨텍스트에서 사용될 수 있습니다 ( 비 VLA (C99부터) 배열 크기, 정적 초기화자 등)
|
(C11부터) |
|
(C99 이후) |
기본 표현식
모든 연산자의 피연산자는 다른 표현식일 수도 있고 기본 표현식 일 수도 있습니다 (예를 들어 1 + 2 * 3 에서 operator+의 피연산자는 부분 표현식 2 * 3 과 기본 표현식 1 입니다).
기본 식(primary expressions)은 다음 중 하나입니다:
| (since C11) |
괄호 안의 모든 표현식은 기본 표현식으로도 분류됩니다: 이는 괄호가 모든 연산자보다 높은 우선순위를 가지도록 보장합니다.
상수와 리터럴
C 프로그램의 소스 코드에는 특정 타입의 상수 값들을 리터럴(좌측값 표현식의 경우)과 상수(비좌측값 표현식의 경우)로 알려진 특수한 표현식을 사용하여 포함시킬 수 있습니다.
- integer constants 는 정수 타입의 10진수, 8진수 또는 16진수입니다.
- character constants 는 문자 타입으로 변환에 적합한 int 타입의 개별 문자이거나 char8_t , (since C23) char16_t , char32_t , 또는 (since C11) wchar_t 타입의 개별 문자입니다.
- floating constants 는 float , double , 또는 long double 타입의 값입니다.
|
(C23부터) |
- 문자열 리터럴 은 널 종료 문자열을 나타내는 char [ ] , char8_t [ ] (C23부터) , char16_t [ ] , char32_t [ ] , (C11부터) 또는 wchar_t [ ] 타입의 문자 시퀀스입니다
|
(C99부터) |
평가되지 않는 표현식
sizeof 연산자 의 피연산자는 평가되지 않는 표현식입니다 (VLA인 경우 제외) (C99부터) . 따라서 size_t n = sizeof ( printf ( "%d" , 4 ) ) ; 는 콘솔 출력을 수행하지 않습니다.
|
|
(since C11) |
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 6.5 Expressions (p: TBD)
-
- 6.6 Constant expressions (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 6.5 Expressions (p: 55-75)
-
- 6.6 Constant expressions (p: 76-77)
- C11 표준 (ISO/IEC 9899:2011):
-
- 6.5 Expressions (p: 76-105)
-
- 6.6 Constant expressions (p: 106-107)
- C99 표준 (ISO/IEC 9899:1999):
-
- 6.5 Expressions (p: 67-94)
-
- 6.6 Constant expressions (p: 95-96)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 3.3 EXPRESSIONS
-
- 3.4 CONSTANT EXPRESSIONS
참고 항목
|
C++ 문서
참조:
Expressions
|