Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 3 / 3
Регистрация: 02.08.2016
Сообщений: 39

Указатель: всегда ли использование указателей хорошо?

09.08.2016, 14:08. Показов 1418. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня своего рода вопрос: всегда ли использование указателей хорошо, например каждый адрес переменной засовывать в указатель, а после работать с ними.
Вот пример с указателями:
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
#include <iostream>
using namespace std;
 
int sum(int *a, int *b);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int d, b;
    int *A, *B;
    A = &d, B = &b;
    cin >> *A >> *B;
    int a;
    int *c;
    c = &a;
    *c = sum(A, B);
    cout << *c;
    return 0;
}
 
int sum(int *a, int *b)
{
    return *b + *a;
}
А вот без:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int sum(int a, int b);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int a, b;
    cin >> a >> b;
    int c = sum(a, b);
    cout << c;
    
}
 
int sum(int a, int b)
{
    return a + b;
}
Какой из данных кодов лучше: с указателями или без?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2016, 14:08
Ответы с готовыми решениями:

Как обойтись без указателей и указателей на указатель?
Ибо не совсем выходит понять,что на что тут указывает #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; using...

Указатель типа void. Использование косвенного связывания через универсальный указатель
Необходимо использовать косвенного связывания через универсальный указатель, примерный вид: struct обобщение{ключ; void* на что угодно}...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

27
68 / 68 / 11
Регистрация: 28.12.2012
Сообщений: 471
10.08.2016, 12:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от obivan Посмотреть сообщение
SEGNET, ну про это HelicopterK52, и говорит, если у вас строка в 50 символов это 50 байт как минимум а ее адресс занимает 4 байта или 8 в зависимости от разрядности системы
А где хранится это строка на которую указывает указатель?
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
10.08.2016, 12:29
SEGNET, в куче
0
68 / 68 / 11
Регистрация: 28.12.2012
Сообщений: 471
10.08.2016, 12:34
Цитата Сообщение от obivan Посмотреть сообщение
SEGNET, в куче
Куча лучше чем стек? если речь идет о локальном массиве.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
10.08.2016, 12:40
Цитата Сообщение от SEGNET Посмотреть сообщение
Куча лучше чем стек?
Свинина лучше говядины? Если речь идет о оперативной памяти.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
10.08.2016, 13:19
SEGNET, этот Шилдт - чертов графоман. Вот прочти..
0
5 / 3 / 3
Регистрация: 02.08.2016
Сообщений: 39
10.08.2016, 20:40  [ТС]
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
#include <iostream>
#include <ctime>
using namespace std;
 
void score(int *piEnter, int iMax);
 
int main()
{
    srand(time(NULL));
    int iMax(NULL);
    cin >> iMax;
    int *piArray = new int[iMax];
    score(piArray, iMax);
    delete [] piArray;
    piArray = nullptr;
    return 0;
}
 
void score(int *piEnter, int iMax)
{
    for (int i = 0; i < iMax; i++)
    {
        piEnter[i] = 1 + rand() % 100;
        cout << piEnter[i] << endl;
    }
}
Приемлемо ли здесь указателей?
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
10.08.2016, 20:44
Цитата Сообщение от ELVY Посмотреть сообщение
Приемлемо ли здесь указателей?
Да.
1
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
11.08.2016, 00:17
указатели нужны тогда, когда перемещать сам объект трудно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct T
{
    int a[1000000];
    T() {}
}
 
int main()
{
    T a1;
    T b1;
    swap(a1,b1);// долго
    T *a2 = new T();
    T *b2 = new T();
    swap(a2,b2);// быстро
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2016, 00:17
Помогаю со студенческими работами здесь

Использование функций, возвращающих указатель на указатель
Здравствуйте. Есть несколько функций, которые возвращают указатель на указатель. Вот одна из них: long ZGetBufferADC(long...

Указатель на массив указателей
Доброго времени суток. Имеется класс Kino, содержащий в себе некоторые поля данных и методы к ним. Другой же класс, класс KinoMassiv,...

указатель на массив указателей
помогите разобраться, передаю в функцию update_table массив указателей на фигуры, для каждой из которых должна вызываться add_to_table....

Массив указателей на указатель
Помогите, пожалуйста. У нас есть объявление int **m6; Нужно представить и нарисовать, как данный массив 10 указателей на указатель,...

Арифметика указателей (указатель на void*)
У меня есть указатель на void*, который я получил с помощью void *beginPointer = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE);Мне...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru