С выходным вопросом - PullRequest
0 голосов
/ 05 апреля 2011

Почему его вывод %% ??

#include<stdio.h>
int main(void)
{
        printf("% % %\n");
return 0;
}

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Это неопределенное поведение, и абсолютно может произойти все, что угодно .Раздел 7.19.6.1/9 C99 гласит:

Если спецификация преобразования недопустима, поведение не определено.

и ни один из предыдущих разделов не допускает спецификатор преобразованияпространства.Они ограничены персонажами из набора diouxXfFeEgGaAcsPn%.

3 голосов
/ 05 апреля 2011

Если вы используете один %, он видит его как строку (поскольку в нем отсутствуют другие спецификаторы) и выдает %. Если вы используете %%, это будет печатать % на выходе. если вы используете %%%, первые два будут считаться выводом %, а последний - как один "символ". так что вы получите только два %.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...