Programing

C 및 C ++에서 (int) + 4 * 5 표현식을 허용하는 이유는 무엇입니까?

lottogame 2020. 10. 5. 07:28
반응형

C 및 C ++에서 (int) + 4 * 5 표현식을 허용하는 이유는 무엇입니까?


(int) + 4*5;

이것이 가능한 이유는 무엇입니까 (값이 있는 유형 추가) ? (g ++ 및 gcc로 시도했습니다.)

나는 그것이 의미가 없다는 것을 알고 있지만 (효과가 없음) 이것이 가능한 이유를 알고 싶습니다.


+여기 단항 +연산자 가 아닌 바이너리 더하기 연산자 . 여기에는 추가가 없습니다.

또한 구문 (int)은 형변환에 사용됩니다.

그 진술을 다음과 같이 다시 읽을 수 있습니다.

(int) (+ 4) * 5;    

다음과 같이 구문 분석됩니다.

((int) (+ 4)) * (5);    

즉,

  1. +정수 상수 값에 단항 연산자를 적용합니다 4.
  2. typecast to an int
  3. 피연산자로 곱하다 5

이것은 (int) (- 4) * (5);단항 연산자의 사용법이 더 익숙한에서 와 유사합니다 .

귀하의 경우에는 단항 +과 캐스트가 int모두 중복됩니다.


이것은로 해석됩니다 ((int)(+4)) * 5. 즉, 표현식 +4(리터럴에 적용된 단항 더하기 연산자 4), intC 스타일 캐스트 를 사용하여 유형 으로 캐스트하고 결과에 5.

참고 URL : https://stackoverflow.com/questions/55783615/why-do-c-and-c-allow-the-expression-int-45

반응형