Продолжаю штудировать указатели по книге Кернигана и Ричи. Пытаюсь заставить работать этот код:
#include <stdio.h>
static const char *lineptr[] = {"abc", "d", "ef", "jh", "xyz"};
int main(void)
{
while (*lineptr) {
printf("string '%s'\n", *lineptr++); /*XXX*/
}
return 0;
}
Компилятор ругается на строку XXX: invalid lvalue in increment
Но все исправно работает и компилится, если сделать :
#include <stdio.h>
static const char *lineptr[] = {"abc", "d", "ef", "jh", "xyz"};
int main(void)
{
const char **tmp = lineptr;
while (*tmp) {
printf("string '%s'\n", *tmp++);
}
return 0;
}
Пока еще до конца не осознал, что происходит :( надеюсь на подсказки.
Ответ на:
комментарий
от spy_
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от xydo
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Массивы указателей K&R (2015)
- Форум Зацените как GNU C умеет (2008)
- Форум [склероз] Как называются следующие конструкции? (2010)
- Форум математика (2005)
- Форум Странное поведение thread (2003)
- Форум Почему код не компилится (2005)
- Форум покритикуйте функцию (2009)
- Форум [emacs][cedet] Автодополнение (2010)
- Форум C и попытки вернуть из функции указатель на массив символов (2009)
- Форум Указателей массив на разные типы данных. (2013)