C 코드에서 "456" 1이라는 표현이 "457" 대신 "56"을 출력하면 혼란스러워 보일 수 있습니다. " 이 동작을 이해하려면 코드의 복잡성을 자세히 살펴봐야 합니다.
C에서 문자열은 문자 배열로 저장되며 리터럴 "456"은 배열 {'4', '5'와 동일합니다. , '6', ' '}. 산술식에 "456"을 사용하면 암시적 변환이 발생합니다. 배열은 첫 번째 요소에 대한 포인터(기본적으로 '4'에 대한 포인터)로 분해됩니다.
이제 이 포인터에 1을 추가하면 다음 문자인 '5'로 이동합니다. std::cout이 const char*(문자 배열에 대한 포인터)를 발견하면 이를 null로 끝나는 문자열로 해석합니다. 널 종결자 앞에 문자 '6'이 있기 때문에 하위 문자열 "56"만 인쇄됩니다.
요약하면 문자 배열 "456"의 포인터 연산은 첫 번째 문자 '4'를 효과적으로 건너뜁니다. 나머지 숫자를 인쇄하여 "56"을 출력합니다.
위 내용은 \'456\' 1 이 C에서 \'56\' 을 출력하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!