Доброго времени суток!
Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
Мне 17, решил учить C++. Все било хорошо пока не углубился в указатели, в них удалось немного разобраться. Тут началась тема односвязаних списков. Учусь по урокам Дениса Маркова (урок 14). В даной теме я практически ничего не понимаю.
Очень прошу обьясните зачем создавать указатели на указатели и в целом что весь етот код значит. Сделайте пожалуйста доступное обьяснение. Буду очень благодарен
Заранее спасибо!
************************* КОД: https://pastebin.com/TCtXw46L *******************************
Другие языки программирования и технологии
Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
Для начала вам нужно понять как работает память программы. Если вы имеете устойчивое представление, вам будет исключительно просто это сделать.
При объявлении переменной (не важно какой), или массива - они ложатся в специально отведенное место в вашем исполняемом файле (секция данных). После запуска программы, эта секция переместиться в оперативную память.
Что она из себя представляет?
Грубо говоря это просто массив байт.
Когда вы пишите:
int a = 10, b =15;
секция данных будет хранить a и b, а её размер, в суме, будет равен 8:
[0][0][0][10] [0][0][0][15]
------a-------------b-------
Секция данных будет выглядеть аналогично при записи:
struct var
{
int a, b.
} data = {10, 15};
Единственное что измениться, т. к. это способ записи переменных в вашей программе: не 'a', а 'data.a'
Чуть более интереснее становится когда вы объявляете массив структур:
struct var arr[2] = {10, 15}
Секция данных будет иметь примерно такой вид:
[0][0][0][10] [0][0][0][15] [0][0][0][10] [0][0][0][15]
--arr[0].a--- --arr[0].b--- --arr[1].a--- --arr[1].b----
Из этого становится понятно что структура - это просто последовательность байт (фиксированного размера) в памяти.
Теперь схематически опишем принцип работы связного списка (статический список):

При объявлении переменной (не важно какой), или массива - они ложатся в специально отведенное место в вашем исполняемом файле (секция данных). После запуска программы, эта секция переместиться в оперативную память.
Что она из себя представляет?
Грубо говоря это просто массив байт.
Когда вы пишите:
int a = 10, b =15;
секция данных будет хранить a и b, а её размер, в суме, будет равен 8:
[0][0][0][10] [0][0][0][15]
------a-------------b-------
Секция данных будет выглядеть аналогично при записи:
struct var
{
int a, b.
} data = {10, 15};
Единственное что измениться, т. к. это способ записи переменных в вашей программе: не 'a', а 'data.a'
Чуть более интереснее становится когда вы объявляете массив структур:
struct var arr[2] = {10, 15}
Секция данных будет иметь примерно такой вид:
[0][0][0][10] [0][0][0][15] [0][0][0][10] [0][0][0][15]
--arr[0].a--- --arr[0].b--- --arr[1].a--- --arr[1].b----
Из этого становится понятно что структура - это просто последовательность байт (фиксированного размера) в памяти.
Теперь схематически опишем принцип работы связного списка (статический список):

посмотри на ютубе, там всё подробно разобрано!
Витя Святой
Я как раз таки смотрел в ютубе, учился писать код. Но тут именно надо чтоби кто-нибудь обьяснил даний код
Ооо клас я так само учился по його уроках, но крме етого, то што я не понимав я об етом читав литературу. Мне тоже сложна дались указатели, списки, рекурсия, но по мери стараний и понимания, все-таки их опанирував, хочя рекурсию не очень, но ето приходит з практикой
А так указатели нужни для виделения динамической пам'яти, то исть ми не знаєм нужна нам виделить или нет, или есть какиєто условия; именно указатели и ссилки делают С/С++ очень потужним язиком, ними проще оперировать строками символов, в ООП используют, в нрафичестом интерфейси, с помащю указателей ти поеруєш пам'яттю, в других мовах например JAVA на сколько я знаю указателей нет
штоб харашо их понять немного почитай о них, посмотри больше видио на ютубе, ну и канешно боль практикируйся, опит приходит з практикой
А так указатели нужни для виделения динамической пам'яти, то исть ми не знаєм нужна нам виделить или нет, или есть какиєто условия; именно указатели и ссилки делают С/С++ очень потужним язиком, ними проще оперировать строками символов, в ООП используют, в нрафичестом интерфейси, с помащю указателей ти поеруєш пам'яттю, в других мовах например JAVA на сколько я знаю указателей нет
штоб харашо их понять немного почитай о них, посмотри больше видио на ютубе, ну и канешно боль практикируйся, опит приходит з практикой
Витя Святой
А зачем использовать указатели на указатель в даном случае?
Похожие вопросы
- Помогите разобраться в програмном коде на С++
- Помогите разобраться в старом коде Фортрана...
- Помогите, лёгкий код C++
- помогите закончить код C++
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Для чего служит код C++? Или какие коды должен знать уверенный программист.
- Некорректно работает код. (C#)
- Программирование, C++, курсовая работа по C++ на тему список студентов
- Помогите пожалуйста разобраться с циклом while c++
- Программисты! Помогите пожалуйста! Нужно на паскале написать код к следующей задаче: Даны натуральные числа a, b, c