Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Light Knight
 Аватар для Aaxenon
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361

Указатели

29.12.2010, 12:56. Показов 3200. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нашел у Страуструпа вот такую функцию:
C++
1
2
3
4
5
6
void swap(int *p, int *q)
{
int t = *p;
*p = *q;
*q = t;
}
зачем здесь указатели, почему нельзя просто использовать переменные?и вообще для чего используются указатели, в чем необходимость их использования?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.12.2010, 12:56
Ответы с готовыми решениями:

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

Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей?
Доброго времени суток! Задался теоретическим вопросом. Читал пример из книги Лафоре ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++,...

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

37
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
29.12.2010, 13:42
Студворк — интернет-сервис помощи студентам
yanyk1n, Я так понимаю ты имеешь ввиду вот это. Одна проблема - я немного не представляю как его разыменовать)

C++
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
#include <iostream>
 
class Object
{
public:
    Object():a(0)
    {
    }
    int GetA() const
    {
        return a;
    }
private:
    int a;
};
 
std::ostream* operator <<(std::ostream& os, const Object& Ob)
{
    os<<Ob.GetA()<<'\n';
    return &os;
}
 
int main()
{
    Object Ob;
    std::cout<<Ob<<'\n';
    return 0;
}
1
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.12.2010, 13:43
Цитата Сообщение от ForEveR Посмотреть сообщение
В отличии от передачи параметра по значению, передеча параметра по константной ссылке подразумевает во первых неизменение значения, во-вторых передачу только ссылки на объект.
Передача по значению даёт его неизменение. А передача только ссылки вместо самого объекта преследует цель сократить стековые операции и избежать лишних вызовов конструкторов/деструкторов. Так вот, это задача оптимизации, а ни как не разработки. Сделай оптимизатор, который будет подставлять константные ссылки вместо больших объектов - принесёшь пользу. А в явном виде такие ссылки вредны. Я уже наткнулся на сложности сравнения полей объектов, переданных по константным ссылкам.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
29.12.2010, 13:44
taras atavin, Не могу с тобой согласиться на тему вредности таких ссылок.

C++
1
2
3
4
    bool operator>(const _Myt& _Right) const
        {   // test if this > _Right
        return (_Right < *this);
        }
Реализацию STL писали плохие люди?
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.12.2010, 13:47
Я пытался их юзить, так при каждом доступе к полю пришлось втыкать приведение к типу обычной ссылки. Ну и какова польза? Или хотя бы что нейтрального в этой возне?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
29.12.2010, 13:48
taras atavin, При доступе - не придется. Придется только при изменении, что логично и лучше такого не делать.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
29.12.2010, 13:50
Насчет того, как можно заменить возвращение по ссылке на возвращение по указателю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
class A
{
    int a;
public:
    A(int _a) : a(_a) {}
    
    friend std::ostream* operator << (std::ostream& os, const A& rhs)
    {
        os << rhs.a;
        return &os;
    }
};
 
int main()
{
    A foo(1), bar(2);
    (*(*(std::cout << foo) << bar)) << std::endl;
    return 0;
}
2
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
29.12.2010, 13:51
Nameless One, Пасиба. Я до такого изврата как-то не додумался)
0
 Аватар для yanyk1n
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
29.12.2010, 13:53
Nameless One, спасибо=) теперь стала очевидна польза возврата по ссылке
0
29.12.2010, 14:21

Не по теме:

За последние N месяцев это единственная нормальная тема, в разделе С++, за что автору респект и уважуха.

0
29.12.2010, 14:23

Не по теме:

Цитата Сообщение от oxotnik Посмотреть сообщение
За последние N месяцев это единственная нормальная тема, в разделе С++, за что автору респект и уважуха.
ответ на вопрос, заданный в этой теме, можно найти в любой книжке по С/С++. Я думаю, даже в самоучителях для чайников...

0
29.12.2010, 14:32

Не по теме:

Nameless One, на бесптичье и попа соловей ;)
а тема будет интересна хотя бы начинающим, которые путаются в ссылках и указателях, прочитают, может чего то поймут

0
29.12.2010, 14:51

Не по теме:

oxotnik, оно то может быть и так, только я все-равно считаю, что для начинающего нет ничего лучше хорошей книжки. Форум - вещь хорошая, но знания должны быть систематическими

0
29.12.2010, 14:53

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
для начинающего нет ничего лучше хорошей книжки. Форум - вещь хорошая, но знания должны быть систематическими
человек спросил непонятные моменты, ему объяснили, видно что он читает и пытается разобраться, следующий новичок скорей всего тоже будет читать, потом в форум полезет и наткнется на эту тему

0
29.12.2010, 15:14  [ТС]

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
ответ на вопрос, заданный в этой теме, можно найти в любой книжке по С/С++. Я думаю, даже в самоучителях для чайников...
может в самоучителях для чайников есть, а в книге Страуструпа нет..к сожалению, я не нашел книги, где максимально четко описаны такие спорные моменты, да еще и с примерами..у меня на винте десяток книг, но на форуме мне за 15 минут хорошо объяснили и я рад, что могу спокойно продолжать читать Страуструпа, а не провести весь день, ища ответ на этот вопрос, и, в результате, не факт, что нашел бы

0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
29.12.2010, 15:46
Эх, не надо бы новичку Страуструпа читать... Ну не писатель он, не учитель, так сказать, по призванию...
0
29.12.2010, 16:19  [ТС]

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Эх, не надо бы новичку Страуструпа читать... Ну не писатель он, не учитель, так сказать, по призванию...
как бы не совсем новичок..синтаксис знаю, основные пункты знаю, пора, так сказать, глубже копать..

0
29.12.2010, 16:23

Не по теме:

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

0
29.12.2010, 16:40  [ТС]

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну так глубже копать - это всё равно учиться. Тем более указатели - это, не в обиду, начальный уровень. Одно из основных средств, без которых дальше - ни-ни.
окей..

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2010, 16:40

Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком
Смысл задания в том, что нужно отсортировать массив структур из 3х полей по сумме координат есть структура struct XYZ{ ...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов?
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

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

Зачем нужны все эти указатели (или не указатели)
Зачем надо DWORD, HANDLE, LPVOID?


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru