Указатели или что тут происходит? - C (СИ)
Формулировка задачи:
Чем больше я пытаюсь разобраться, тем больше путаюсь. Пожалуйста, построчно объясните что тут происходит начиная с typedef
struct listNode { /* структура со ссылкой на себя */
char data;
struct listNode *nextPtr;
};
typedef struct listNode LISTNODE;
typedef LISTNODE *LISTNODEPTR;
void insert (LISTNODEPTR *, char);
char dele(LISTNODEPTR *, char);
int isEmpty(LISTNODEPTR);
void printList(LISTNODEPTR);
void instructions(void);Решение задачи: «Указатели или что тут происходит?»
textual
Листинг программы
struct listNode { /* структура listNode */
char data; //данные
struct listNode *nextPtr; // указатель на структуру типа listNode
};
typedef struct listNode LISTNODE; /* создаем новый тип данных
т.е. чтобы не писать каждый раз
struct listNode test;
а чтобы написать
LISTNODE test;
*/
typedef LISTNODE *LISTNODEPTR; /*
аналогично чтобы не писать
LISTNODE * ptr;
чтобы просто
LISTNODEPTR ptr;
как по мне - довольно неудобное решение.
*/
// прототипы функций
void insert (LISTNODEPTR *, char);
char dele(LISTNODEPTR *, char);
int isEmpty(LISTNODEPTR);
void printList(LISTNODEPTR);
void instructions(void);
Объяснение кода листинга программы
- Структура
listNodeобъявляет данные и указатель на следующую структуруlistNodeв списке. - Тип данных
LISTNODEсоздается с помощью typedef для упрощения работы со структурой. - Тип данных
LISTNODEPTRтакже создается с помощью typedef для упрощения работы с указателями на структуру. - Функция
insertдобавляет новый элемент в список. - Функция
deleудаляет элемент из списка. - Функция
isEmptyпроверяет, пуст ли список. - Функция
printListвыводит содержимое списка. - Функция
instructionsвыводит инструкции для пользователя. - Код, в котором эти функции используются, не представлен.