C/C에서 숫자 상수 앞에 '0'을 붙이는 경우
질문:
왜 C/C에서 '0'이라는 접두사가 붙은 정수 상수가 예상과 다른 값으로 평가됩니까? 예를 들어, 상수 '0123'을 사용하면 123 대신 값 83이 됩니다.
답변:
C/C 및 기타 프로그래밍 언어에서 숫자 상수는 그들이 나타내는 숫자 기반을 나타내기 위해 다른 접두사가 붙습니다. '0' 접두사는 8진수(8진수) 상수를 나타냅니다.
컴파일러는 '0' 접두사가 붙은 숫자 상수를 발견하면 그 뒤에 오는 숫자를 8진수로 해석합니다. '0123'의 경우 (0 8^3) (1 8^2) (2 8^1) (3 8^0)으로 처리되는데, 이는 은 10진수로 83으로 평가됩니다.
이는 '0'으로 시작하는 숫자 상수를 다음과 같이 처리한다는 C/C 언어 사양과 일치합니다. 8진수. 이 규칙은 정수 및 부동 소수점 상수 모두에 적용됩니다.
C/C 프로그램에서 숫자 데이터를 정확하게 표현하고 해석하려면 숫자 접두사의 역할을 이해하는 것이 중요합니다.
위 내용은 C/C에서 '0123'이 83으로 평가되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!