반응형
C 및 C ++에서 (int) + 4 * 5 표현식을 허용하는 이유는 무엇입니까?
(int) + 4*5;
이것이 가능한 이유는 무엇입니까 (값이 있는 유형 추가) ? (g ++ 및 gcc로 시도했습니다.)
나는 그것이 의미가 없다는 것을 알고 있지만 (효과가 없음) 이것이 가능한 이유를 알고 싶습니다.
은 +
여기 단항 +
연산자 가 아닌 바이너리 더하기 연산자 . 여기에는 추가가 없습니다.
또한 구문 (int)
은 형변환에 사용됩니다.
그 진술을 다음과 같이 다시 읽을 수 있습니다.
(int) (+ 4) * 5;
다음과 같이 구문 분석됩니다.
((int) (+ 4)) * (5);
즉,
+
정수 상수 값에 단항 연산자를 적용합니다4
.- typecast to an
int
- 피연산자로 곱하다
5
이것은 (int) (- 4) * (5);
단항 연산자의 사용법이 더 익숙한에서 와 유사합니다 .
귀하의 경우에는 단항 +
과 캐스트가 int
모두 중복됩니다.
이것은로 해석됩니다 ((int)(+4)) * 5
. 즉, 표현식 +4
(리터럴에 적용된 단항 더하기 연산자 4
), int
C 스타일 캐스트 를 사용하여 유형 으로 캐스트하고 결과에 5
.
참고 URL : https://stackoverflow.com/questions/55783615/why-do-c-and-c-allow-the-expression-int-45
반응형
'Programing' 카테고리의 다른 글
Volley를 사용하여 JSON 데이터로 POST 요청 보내기 (0) | 2020.10.05 |
---|---|
개인 도커 레지스트리에 원격 액세스하는 방법은 무엇입니까? (0) | 2020.10.05 |
함수 수준 정적 변수는 언제 할당 / 초기화됩니까? (0) | 2020.10.05 |
SQLite-특정 숫자만큼 값 증가 (0) | 2020.10.05 |
재진입 잠금과 개념은 일반적으로 무엇입니까? (0) | 2020.10.05 |