Я решала последние годы GATE вопрос бумаги, где я застрял с этим вопросомПроблема с указателями массивов в C
Что делает следующий фрагмент C-программы печати?
char c[]="GATE2011";
char *p =c;
printf ("%s", p+p[3]-p[1]);
Ответ «2011»
Я знаю, что в с, переменные массива являются указатель на первый адрес массива. Моим логическим ответом был «E2011», но выход
Может кто-нибудь объяснить, что в этом участвует математика-указатель?
Я думаю, что вам нужно перечитать свою книгу по указателям. Вы смешиваете арифметику указателей с символами. Это приведет к возникновению всех проблем в будущем, если вы спуститесь по этому маршруту. –
@EdHeal Это был экзамен (GATE). надеюсь, не какой-нибудь производственный код! –