Потому что так определяется printf
.
Но это имеет смысл;рассмотрим следующий код:
printf("%d\n", 42);
Каким будет эквивалентный код, если printf
принимает целые числа через указатель?
Строки являются особым случаем;строка в C - это последовательность символов в памяти, доступ к которой осуществляется через указатель на ее первый элемент.Таким образом, вам нужно дать printf
этот указатель, чтобы он мог прочитать всю строку.