Имеется такой код, по которому возникли вопросы
#include <iostream>
#include <fstream>
using namespace std;
void insert(list*& p, char value);
struct list
{
char symbol;
list* next;
};
int main()
{
setlocale(LC_CTYPE, "Russian");
list* first = nullptr;
char value;
cout << "Введите символ ";
cin >> value;
insert(first, value);
}
void insert(list*& p, char value) //
{
list* newP = new list;
if (newP != NULL) //есть ли место?
{
newP->symbol = value;
newP->next = p;
p = newP;
}
else
cout << "Операция добавления не выполнена" << endl;
}
1. Функция insert принимает два параметра, для чего первый параметр? Зачем передавать в функцию insert указатель на ссылку первым параметром?
2. list* first = nullptr - Похоже в этой строке создается указатель на первый элемент односвязного списка, зачем в него присваивать пустоту?
3. Что происходит в этой строке? list* newP = new list;