У меня возникли проблемы с пониманием того, как c использует puts() для отображения частей сообщения. Два способа, которые я бы рассматривал как эквивалентные, не работают одинаково с функцией. Напримерputs() вопросы с const char
void skippie(char *msg)
{
puts(msg + 6);
}
char *msg = "Don't call me!";
skippie(msg);
Это компилируется нормально, однако это не
void skippie(char *msg)
{
puts(msg[6]);
}
char *msg = "Don't call me!";
skippie(msg);
, как это ставит() различие между ними и компилировать только один? Компилятор жалуется, что ему нужен символ «const», но даже если я попытаюсь использовать этот синтаксис, он терпит неудачу. Может кто-нибудь объяснить это?
'msg [6]' это то же самое, что '* (msg + 6)' ... –