f(char**);
int main()
{
char *argv[] = {"ab", "cd", "ef", "gh", "ij", "kl"};
f(argv);
return 0;
}
void f(char **p){
char **t;
t = (p += sizeof(int))[-1];
printf("%s\n", t);
}
а как должна?
Выводит gh, не пойму каким образом)
хотя вот это меня пугает t = (p += sizeof(int))[-1];
Из за этой строки и спрашиваю
очень плохо
А что тут страшного, сдвинули указатель и разыменовали со сдвигом на 1 обратно
а его переписать как можно?
Лучше объясните исходную задачу
автор, к вам вопрос
a[b] b[a] *(a + b) Так и работает
Дан код, нужно понять, что он выводит
Зачем тогда переписывать?
https://stackoverflow.com/questions/41134430/why-is-the-output-of-this-code-gh
И да, в вашем коде ошибка
Обсуждают сегодня