Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 10

Как понять тему ссылки и указатели

05.08.2026, 20:53. Показов 10552. Ответов 135
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я не понимаю эту тему я постоянно путаюсь дайте какойто видеоурок самый понятный или сами объясните я не понимаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2026, 20:53
Ответы с готовыми решениями:

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно....

Code:: Blocks (не на тему программирования, а на тему настройки)
доброе время суток сразу попрошу прощения за созданную тему в этом разделе, которая не совсем по...

Указатели на указатели, как правильно разыменовать, где ошибка?
1)Есть класс: Shape - абстрактный; у него есть классы наследники: Circle, Triangle. 2)Eсть...

135
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
12.08.2026, 20:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от jcxz Посмотреть сообщение
Интересно - как вы это всё написали, не пользуясь указателями? Берут большие сомнения...
А где там нужны указатели - вот так, что-бы я их создавал и ими пользовался?
Ну за исключением передачи массивов в функцию, и там, где этого требуют другие встроенные в язык функции.

Добавлено через 4 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Полезного чего написал?
Приведи пример, что можно написать полезного другим людям? Всё либо уже написано до нас, либо слишком сложно для любителя одиночки. Пишу исключительно для себя и для своего удовольствия.
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
12.08.2026, 20:36
Аудиоплеер:
Миниатюры
Как понять тему ссылки и указатели  
0
фрилансер
 Аватар для Алексей1153
6508 / 5763 / 1135
Регистрация: 11.10.2019
Сообщений: 15,411
12.08.2026, 20:46
alexu_007,

1) настольные игры пишутся студентами ещё до изучения указателей, тут незачёт

2) использование фреймворка - часто скрывает использование указателей.
Хотя, вот Qt - там без указателей никак, все объекты QObject создаются на куче

3) любое приложение возможно написать без указателей. Будет повальное копирование и индексирование.
Это будет работать, но эффективность будет страдать
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
12.08.2026, 21:03
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Хотя, вот Qt - там без указателей никак, все объекты QObject создаются на куче
Но они создаются автоматически, я их вручную не создаю. если мне нужна кнопка - тупо беру кнопку из списка, и перетаскиваю её на форму. Это называется формошлепство.
У меня ваще смутные представления, что такое куча. Зачем она мне? Qt все делает за меня, мне остается только писать код реализуемого алгоритма.
0
фрилансер
 Аватар для Алексей1153
6508 / 5763 / 1135
Регистрация: 11.10.2019
Сообщений: 15,411
12.08.2026, 21:32
Цитата Сообщение от alexu_007 Посмотреть сообщение
Это называется формошлепство
на самом деле это называется использование редактора форм. И это - правильно

Но речь же была не про фреймворки, где всё уже сделано, надо только вызвать функцию.

Речь про эффективное использование языка C++

Авторы фреймворка его эффективно использовали
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,224
Записей в блоге: 2
12.08.2026, 22:10
Цитата Сообщение от alexu_007 Посмотреть сообщение
Я не пишу на Си, я пишу на Qt С++. Динамическая память там не нужна от слова вообще, по крайней мере для моих простых проектов. Компилятор сам выделяет память, сколько нужно.
Связный список не нужно писать самому - для этого есть контейнеры, хочеш qt-шные, хочешь std::
Ну и хорошо, на здоровье. Только тогда Вам больше подходит др язык, ну хотя бы шарп, а то но плюсах Вы "не в своей тарелке"
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
13.08.2026, 07:14
Да не... Изначально хотелось писать оконные приложения для винды (ну и приятный бонус - для линукса). Не прилагая для этого чрезмерных усилий. Поэтому сперва был Билдер, потом Qt.

Добавлено через 3 минуты
Цитата Сообщение от Алексей1153 Посмотреть сообщение
на самом деле это называется использование редактора форм. И это - правильно
Многие профи этого не любят: "нада все создавать вручную.."
0
фрилансер
 Аватар для Алексей1153
6508 / 5763 / 1135
Регистрация: 11.10.2019
Сообщений: 15,411
13.08.2026, 07:20
Цитата Сообщение от alexu_007 Посмотреть сообщение
Многие профи
они ещё пороху не нюхали просто

Скажем так, покрутить в руках - полезно, чтобы понимать, что и где визард расставляет, как это всё взаимодействует.

А в продакшн большую часть формы нужно делать в редакторе

Это быстрее, удобнее, более поддерживаемо
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
13.08.2026, 07:23
Цитата Сообщение от alexu_007 Посмотреть сообщение
Многие профи этого не любят: "нада все создавать вручную.."
Странные профи какие-то получаются, раз "любят" руками писать то, что дизайнер в разы быстрее делает...
0
352 / 150 / 10
Регистрация: 19.07.2024
Сообщений: 850
13.08.2026, 11:04
Цитата Сообщение от alexu_007 Посмотреть сообщение
А где там нужны указатели - вот так, что-бы я их создавал и ими пользовался?
Я уже писал выше. И другие люди тож.
И ещё 100500 применений: рисование графики (только не вызовом чужих функций, а самостоятельно); кодирование/декодирование данных, подсчёт разных хешей, CRC и пр. (но опять-же - не юзанием чужих готовых функций, а написанием своих). И т.д. Да любая обработка данных, более-менее сложная, требует как правило работы с указателями. Чтобы сделать её эффективной.
Вы писали, что "использовали указатели только для передачи в функции". Но как думаете - раз вы передаёте туда указатели, то видимо эти функции внутри с ними как-то работают? И получается - вы сами никогда не писали таких функций, только чужие пользовали?
Я не представляю как так можно программировать на си без указателей. Если действительно программировать, а не только чужой код копипастить.

Добавлено через 1 минуту
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Это будет работать, но эффективность будет страдать
Это мягко сказано. Она будет ниже плинтуса.

Добавлено через 13 минут
Цитата Сообщение от alexu_007 Посмотреть сообщение
Я не пишу на Си, я пишу на Qt С++.
И при чём тут Qt? Это всего-лишь обёртка для GUI. Но у любой более-менее полезной программы кроме внешнего интерфейса должна быть какая-то полезная начинка. Которая никак не зависит от того, как реализован интерфейс с пользователем. Вот в той начинке и используются указатели. А внешний интерфейс в больших программах - это всего лишь проценты от всего объёма. Как надводная часть айсберга.
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
13.08.2026, 11:17
Код программы, вычисляющей crc32, где здесь место указателям?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include "widget.h"
#include "ui_widget.h"
 
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    QObject::connect(ui->pushButton_1, SIGNAL(clicked()), this, SLOT(MyEventButton_1()));
    QObject::connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(MyEventButton_2()));
    QObject::connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(MyEventButton_3()));
}
 
 
 
 
Widget::~Widget()
{
    delete ui;
}
 
 
 
//функция добавляет пробелы в число 12345678 -> 12 345 678
//---------------------------------------------------------------------------
QString fn_SpsToInt(QString str)
{
    int x = str.length() - 3;
    while(x > 0) {str.insert(x, QString(" ")); x -= 3;}
 
    return str;
}
 
 
 
// нажтие кнопки Open File
// ********************************************************************
// ********************************************************************
void Widget::MyEventButton_1()
{
    // диалог выбора файла
    full_fname = QFileDialog::getOpenFileName(this, tr("Open File"), "" , tr("*"));
                                                    //"C:/Users/Alexu/Desktop/", tr("*"));
 
    ui->label_1->setText("Fname:   " + full_fname);
 
    ui->label_2->setText("Size:");
    ui->label_3->clear();
}
 
 
 
// нажатие кнопки Make CRC
// ********************************************************************
// ********************************************************************
void Widget::MyEventButton_2()
{
    QMessageBox msgBox;
 
    QString str;
 
    quint64 cx = 0;
    quint32 crc32 = 0xffffffff;
    quint32 x;
 
 
    // открываем файл
    QFile inpf(full_fname);
 
    // для чтения
    if (!inpf.open(QIODevice::ReadOnly))
        {
        msgBox.setText("  Error: can't open input file  ");
        msgBox.exec();
        return;
        }
 
 
    // цикл чтения и обработки файла
    while(!inpf.atEnd())
        {
        QByteArray src = inpf.read(1024);
        const quint32 sz = src.size();
 
        for(quint32 i = 0; i < sz; ++i)
            {
            crc32 = (crc32 >> 8) ^ CRC32Table[(crc32 ^ src.at(i)) & 0xff];
            cx++;
            }
        }
 
    inpf.close();
    crc32 ^= 0xffffffff;
    str = QString::number(crc32, 16).toUpper();
 
    // добавление лидирующих нулей в hex
    x = 8 - str.length();
    while(x--) {str.insert(0, QString("0"));}
 
    str.insert(4, QString("-"));
 
    ui->label_2->setText("Size:       " + fn_SpsToInt(QString::number(cx)) + "  byte");
    ui->label_3->setText(str);
}
 
 
 
// нажатие кнопки Clear
// ********************************************************************
// ********************************************************************
void Widget::MyEventButton_3()
{
    ui->label_1->setText("Fname:");
    ui->label_2->setText("Size:");
    ui->label_3->clear();
}
0
фрилансер
 Аватар для Алексей1153
6508 / 5763 / 1135
Регистрация: 11.10.2019
Сообщений: 15,411
13.08.2026, 11:48
Цитата Сообщение от alexu_007 Посмотреть сообщение
src.at(i)
тут забито на эффективность по полной

лучше тогда уж []


Цитата Сообщение от alexu_007 Посмотреть сообщение
for(quint32 i = 0; i < sz; ++i)
а вот тут можно было итератор и применить

всё поэффективнее выйдет
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,375
13.08.2026, 13:17
Цитата Сообщение от Usaga Посмотреть сообщение
Странные профи какие-то получаются, раз "любят" руками писать
Я не профи. Я любитель иногда...
Лучше скопировать в приложение строк двести коду из загашника и пристроить его, (Это будет програмирование...)
Чем собирать какие то ошмётки, мешок длл... И куча каких то приципов.
Мне Visual Studio нравиться. А бильдер установлен на другом компьютере в коридоре.
И он не Visual Studio. Там свои принципы...
Переходить на бильдер нету смысла. Не во всех приложениях нужно формошлёпство.
А бильдер здоровый однако.....
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,375
13.08.2026, 13:26
Необработанное исключение по адресу
Название: ccc.png
Просмотров: 113

Размер: 14.7 Кб
Нашёл я у одного человека вот такую штуку...
А что это такое?
А это диалог.
И начал я колупать, разрабатывать, и в результате наклеил их почти на все приложения.
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,375
13.08.2026, 13:29

Это мой диалог... Ну почти мой... Ну не ку-те это точно.
Приклеиваеться везде....
И хелп написать сгодиться...
И QR код я выводил... Ну это, который телефон читает.
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,375
13.08.2026, 14:00
Кстати про фрамеворки...
FFMPEG обновили и склеивать видео просто бросая пакеты он больше не стал...
Пришлось ставить туда кодировщик. Тоже конечно из своего загашника...
(Самое левое окошко...)
Как у вас в QT? Кодировщик h264 предусмотрен?
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
13.08.2026, 16:16
Цитата Сообщение от Наталья8 Посмотреть сообщение
Я не профи. Я любитель иногда...
Лучше скопировать в приложение строк двести коду из загашника и пристроить его, (Это будет програмирование...)
Чем собирать какие то ошмётки, мешок длл... И куча каких то приципов.
Мне Visual Studio нравиться. А бильдер установлен на другом компьютере в коридоре.
И он не Visual Studio. Там свои принципы...
Переходить на бильдер нету смысла. Не во всех приложениях нужно формошлёпство.
А бильдер здоровый однако.....
Что-то я не понял посыла этого поста) Что-то тупо скопировать - вполне себе рабочий вариант, исходя из ситуации. Это никак не противоречит профессионализму, если ты об этом...
0
352 / 150 / 10
Регистрация: 19.07.2024
Сообщений: 850
13.08.2026, 17:41
Цитата Сообщение от alexu_007 Посмотреть сообщение
Код программы, вычисляющей crc32, где здесь место указателям?
Цитата Сообщение от alexu_007 Посмотреть сообщение
for(quint32 i = 0; i < sz; ++i)
            {
            crc32 = (crc32 >> 8) ^ CRC32Table[(crc32 ^ src.at(i)) & 0xff];
            cx++;
            }
        }
И в каждом месте программы, где потребуется вычислить эту CRC вы будете заново копипастить этот код? Серьёзно???

Адекватный программист один раз напишет функцию вычисляющую CRC. Принимающую указатель на исходные данные. И во всех точках расчёта сделает её вызов.
Надеюсь - знаете что такое "функция"?

Добавлено через 2 минуты
Цитата Сообщение от alexu_007 Посмотреть сообщение
src.at(i)
А здесь у вас наверняка используется неявный указатель. Так что - без указателя даже у вас не обошлось.
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
13.08.2026, 20:28
Цитата Сообщение от jcxz Посмотреть сообщение
Надеюсь - знаете что такое "функция"?
Че то такое припоминаю...

Цитата Сообщение от jcxz Посмотреть сообщение
А здесь у вас наверняка используется неявный указатель. Так что - без указателя даже у вас не обошлось.
Это не у меня не обошлось, а у разработчиков Qt C++. Я в данном случае указателем не пользовался.

Цитата Сообщение от jcxz Посмотреть сообщение
Адекватный программист один раз напишет функцию вычисляющую CRC. Принимающую указатель на исходные данные.
Если бы понадобилась функция - я бы так и сделал. Я и не возражал, что указатель нужен для передачи параметров в фукнкцию. Но это так было реализовано при создании языков С,С++. А можно было бы обойтись и без указателя, занимающего память. Как - я уже писал ранее.
0
352 / 150 / 10
Регистрация: 19.07.2024
Сообщений: 850
13.08.2026, 20:37
Цитата Сообщение от alexu_007 Посмотреть сообщение
Это не у меня не обошлось, а у разработчиков Qt C++. Я в данном случае указателем не пользовался.
Если объявить:
Code
1
struct Ptr { void *ptr; };
то это разве "нет указателей"?
Здесь Ptr - это тот же самый указатель, только замаскированный под объект класса. А по факту - просто указатель.
Так и у вас.
Более того - оптимизирующий компилятор выкинет всё ненужное, и от Ptr оставит собственно сам указатель.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.08.2026, 20:37

Указатели на функции. Указатели на функции как формальные параметры у функциях высшего уровня
Найти наименьшее значение для функций используя функции и указатели на функции ...

Вопрос по программе на тему: Массивы и указатели. Динамическое выделение памяти
народ, очень прошу! пожалуйста! Помогите решить задачку на тему: Массивы и указатели. Динамическое...

Программа на тему указатели, функции, строки. (язык Си)
Доброго времени суток. Как это случается со многими - я оттянула решение лабораторных работ до...

Задание на тему Указатели
требуется решить такую задачу на C++ : Имеются N-точек, соединенных отрезками. Составить...

Задачи на тему "указатели"
Нужны задачки для закрепления темы &quot;указатели&quot;. Проходил тему по Шилдту и частично по Девису....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru