현재 위치는 - 분류정보망 - 안경정보 - Int I =-20;; 부호 없는 j =10; I+j 의 값은 얼마입니까? 왜요

Int I =-20;; 부호 없는 j =10; I+j 의 값은 얼마입니까? 왜요

-10, 작업 중 암시적으로 유형 변환, 낮은 유형은 높은 유형으로 변환. 예를 들어 float 및 double 유형의 부동 소수점 숫자에 대해 연산하는 경우 float 유형은 연산하기 전에 double 유형으로 자동 변환됩니다. 결과는 또한 높은 유형입니다.

유형은 실제로 범위 커버리지이며 CPU 및 컴파일러의 문자 길이와 관련이 있습니다. Linux_32 비트 시스템에서 Unsigned 가 int 보다 낮습니다. 하지만 이것이 확실하지 않다는 것을 기억하세요. winTC 에서는 그렇게 정의되지 않았을 수도 있습니다.

암시적 변환 규칙은 다음과 같습니다.

1. 프로그램이 산술 연산을 수행할 때 하위 유형을 상위 유형으로 변환할 수 있습니다.

2. 할당 표현식에서 오른쪽 표현식의 값은 자동으로 왼쪽 변수의 유형으로 암시적으로 변환되어 그에게 할당됩니다.

3. 함수를 호출할 때 실제 매개변수 값은 매개변수에 지정되며, 실제 매개변수는 매개변수 유형으로 암시적으로 변환되어 매개변수에 지정됩니다.

4. 함수에 반환 값이 있을 경우 반환 표현식 유형은 함수 유형으로 자동 변환되어 호출 함수에 지정됩니다.

PS: 암시 적 유형 변환은 매우 혼란 스럽습니다. 같은 코드는 환경에 따라 결과가 다를 수 있습니다. 이 문제로 인해 프로그램이 잘못 실행되면 발견하기가 매우 어렵습니다. 따라서 가장 신뢰할 수 있는 방법은 프로그램에서 항상 명시적으로 유형 변환을 수행하는 것입니다.