строку в двойных кавычках, как, которая производит значение указателя на char
(ака char*
), в то время как апостроф производят значение, это символ (используя значение ASCII из Что в котировки. на некоторых компиляторах вы можете сложить несколько символов в одинарные кавычки.
printf("%c", *("\n"));
бы напечатать новую строку, как *
оператор будет разыменования указателя
(вы могли бы сделать *"\n"
, я просто как правило, быть консервативным в письменной форме expre ssions)
printf("%s", '\n');
падает, потому что %s
ожидает указатель, и перевод строки отливают в указатель указывает от в сорняках и, скорее всего, вызывает недопустимый доступ к памяти
Это [неопределенное поведение] (http://stackoverflow.com/a/4105123/1505939), все может случиться –
Неопределенное поведение не обязательно всегда вызывает сбои. Иногда вы получаете случайный вывод. Иногда случаются другие неопределенные вещи. –