왜이 프로그램이 4 대신 4 %를 인쇄하고 있습니까? 모든왜이 C 프로그램은 10 진수 값 뒤에 %를 인쇄합니까?
#include <stdio.h>
int main() {
printf("%lu", sizeof(int));
return 0;
}
왜이 프로그램이 4 대신 4 %를 인쇄하고 있습니까? 모든왜이 C 프로그램은 10 진수 값 뒤에 %를 인쇄합니까?
#include <stdio.h>
int main() {
printf("%lu", sizeof(int));
return 0;
}
우선, sizeof
연산자 size_t
유형의 결과를 산출한다. 결과를 인쇄하려면 %zu
형식 지정자를 사용해야합니다.
잘못된 형식 지정자 (형식 지정자와 일치하지 않는 인수)를 사용하면 undefined behavior이 호출됩니다.
당신은 당신이 당신이을 볼 출력, 후 즉시을 쉘 프롬프트 을 다시받을 일이 있도록 줄 바꿈는, 출력 후 인쇄 할 필요가 없었어요, 말했다.과 downvote에 대한 이유, 누구? –
이 프로그램은 4
만 인쇄합니다.
이후에 셸 프롬프트 (%)가 표시 될 수 있습니다.
이상적으로는
printf("%zu\n", sizeof(int));//zu is the right format specifier for object of type size_t
주 있었어야 나는 다음 줄에 쉘 프롬프트를 얻을 수있는 \n
을 뒀다.
그냥 결과 4.
인쇄 Codepad
당신은 %'쉘하지만 프로그램이 아닙니다 '인쇄 무엇 확실합니까? 그렇다면 틀린 타입의 데이터를'printf()'에 전달하여 * 정의되지 않은 동작 *을 호출했기 때문입니다. 'sizeof' 연산자에서 반환되는'size_t'를 출력하는 올바른 형식은'% zu'입니다. – MikeCAT
쉘이 C 쉘인 것 –
숫자 다음에'\ n'을 넣어 쉘이 다음 라인으로 이동하게합니다 (쉘이'%'문자를 출력하는 것으로 가정하십시오). – Cornstalks