2013-07-05 3 views
0
int main() 
{ 
     int x = 10, y; 
     y = printf("x = %d\n", x); 
     printf("y = %d\n", y); 
     return 0; 
} 

output: 
x = 10 
y = 7 

printf는 문자열을 출력 할 때 문자 수를 반환합니다. 하지만 10을 인쇄 할 때 7을 반환하는 이유는 무엇입니까? int를 인쇄 할 때 printf의 반환 값은 무엇입니까?c의 printf 반환 값?

가능한 중복 : 당신이 말한 것처럼 Return value of printf() function in C

+3

문자열 "x = 10 \ n"에는 7자를 포함하고 있기 때문에! –

+0

어떻게 되나요? 그것은 3입니다. – user1762571

+1

어떻게 3인가요? "x ="는 3 자입니다. "x ="는 4, "x = 1"은 5, ... –

답변

3

읽기 : int printf (const char * format, ...); 성공

, 기록 된 문자의 총 수는 반환된다.

코드 첫 번째의 printf에서 x = 10에 대한

:

printf("x = %d\n", x); 

인쇄 일곱 개 문자 x = 10\ny 수신 7 반환 :

x = 10\n 
    1234567 
    ^^ ^- new line char \n 
    | |--spaces 

\n (새 라인) 기억은 하나입니다 char 및 space는 단일 문자입니다.

+0

*'y'에서받은 7 개의 문자를 출력합니다 * - 나는'y' *에서받은 * 반환 7 (즉, 문자의 수)을 써야한다고 생각합니다. – 0decimal0

+0

@PHIfounder가 수정되었습니다. 지금 확인하십시오 –

+0

예! 지금 투표하세요 :) – 0decimal0

5

는, "우리는 문자열을 인쇄 할 때 printf와 문자의 수를 반환합니다."

"x = 10\n"에는 7 개의 문자가 있습니다. (즉, 이들 : 'x',' ','=',' ','1','0','\n'). (따옴표 제외)

"x = 10\n" 

7 자 :

따라서, Y는 제

1

문자열의 길이로 설정된다. 그것이 y에 저장됩니다. 공백과 '\ n'도 각각 1 문자입니다.

0

"x = % d \ n"물론 7 자입니다. 2 개의 "공백", 1 "%"및 1 "d"가 있음을 기억하십시오. "\ n"은 전체라는 것을 기억하십시오. 다른 문장을 시도해 볼 수 있습니다. 예 : z = printf("x = %d,asd\n",x); 또는 sth. 그런 식으로. 대답은 11입니다. 나는 이러한 질문이 단지 하나의 라인 코드만으로 이루어질 수 있다고 생각합니다.