Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
#1

Зачем здесь нужны указатели - C++

22.02.2012, 18:52. Просмотров 848. Ответов 8
Метки нет (Все метки)

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


Прошу объяснить, зачем здесь нужны указатели, на что они должны указывать и неужели оптимальным будет решение через указатели???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 18:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Зачем здесь нужны указатели (C++):

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

Зачем нужны указатели - C++
Не могу понять синтаксис указателей. Понял, что это работа с адресами, что оператор & это адрес. А вот * как я понял, это объявление...

Зачем нужны указатели? - C++
Интересует вопрос, зачем нужны указатели? Например почему лучше нужно объявлять переменные как указатели, почему как обычно нельзя? ...

Зачем нужны многоуровневые указатели - C++
вопрос в названии темы

Не могу понять зачем нужны указатели? - C++
Не как не могу понять зачем нужны указатели. Я знаю что их надо использовать для выделения памяти, но раньше я и без них обходился

Объясните, пожалуйста, зачем в C++ нужны указатели - C++
Никак что-то не пойму, зачем в C++ указатели? Ведь можно спокойно программировать без них.

8
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.02.2012, 18:56 #2
Цитата Сообщение от Devochka Посмотреть сообщение
зачем здесь нужны указатели
Чтобы учиться работать с указателями.

Цитата Сообщение от Devochka Посмотреть сообщение
на что они должны указывать
На переменные
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.02.2012, 18:57 #3
Цитата Сообщение от Devochka Посмотреть сообщение
зачем здесь нужны указатели
очевидно же - получить навыки работы с указателями

Цитата Сообщение от Devochka Посмотреть сообщение
неужели оптимальным будет решение через указатели
ну смотря что понимать под оптимальностью

да и вот точно такие же задания Через указатели на указатели посчитать сумму двух чисел и записать в третье
0
Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
22.02.2012, 20:53  [ТС] #4
soon,
Jupiter,
спасибо огромное, что не пропустили мой вопрос. Не понимаю тему про указатели. А тем более в этих заданиях. Я понимаю. что указатели укажут на переменные, понимаю, что нужно научиться работать с ними. Но на мой взгляд здесь указатели нужны как собаке пятая лапа. А оптимальность в моем понимании меньше ресурсов использовать и решать самым простым и коротким способом. Моя фраза насчет оптимальности подразумевала - а действительно ли такое решение лучшее? Ведь я эти задачи быстрее, без заморочек решу без указателей. Вот и встает у меня вопрос : зачем они здесь нужны? (Доказательств хочется, что не просто надо голову напрячь.)
А по ссылке сходила, хочу разобраться в коде. Может, после этого меня осенит, зачем сюда указатели приписали. (Слава Богу, что решать это задание не надо!!!)
0
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.02.2012, 21:01 #5
Командир сказал-разгружать Люминий- значит-Люминий. а которые шибко грамотные - пойдут чуген грузить
На маленьких заданиях быстрее всего отработать что-либо(в данном случае указатели).
0
Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
22.02.2012, 21:11  [ТС] #6
)))) Не чуген - а ЧАВУНИЙ!!! ))))
Согласна о маленьких заданиях, но здесь вообще не понимаю роль и значение указателей. В данном конкретном примере. По ссылке посмотрела коды, но я могу тоже самое и без всяких указателей. Поняла, зачем в массиве и в функции указатели нужны. Зачем мне чтобы решить 2+2 высшая математика? Короче, я своевольная дура, которая знает и уверена, что там указатели не нужны, чтоэто только захламление своей головы и кода!
0
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.02.2012, 21:19 #7
Devochka, ну я даже не знаю, какую можно аналогию провести. Это просто тренировка. Нужно понять, как работать с указателями(какую роль выполняет звездочка в следующих примерах int* p и *p = a, ну и т.д.), чтобы при написании больших программ не было заминок с этим.
0
Devochka
31 / 19 / 1
Регистрация: 07.10.2011
Сообщений: 98
22.02.2012, 21:27  [ТС] #8
soon, я саму тему не понимаю про указатели. Поняла с массивами, потому что так их легче менять (хотя можно и статически). Поняла с функциями, потому что так можно вызывать их много раз в любых местах (хотя можно и без указателей). Но здесь не пойму причину применения. Надо не только научить гранату бросать, но и сразу научить делать это правильно. где-то так)
0
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,155
24.06.2012, 03:39 #9
Цитата Сообщение от Devochka Посмотреть сообщение
я саму тему не понимаю про указатели.
Указатели часто нужны при работе с массивами и структурами. Раз уж разобрались с функциями, наверняка представляете, что указатель - практически единственный способ передать массив на обработку в функцию. Структуру, конечно, можно было бы передавать и по значению, но это в большинстве случаев очень неэффективно, а то и просто неприемлимо. К примеру
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define STR_LEN 256
typedef struct PERSON {
    char first_name[STR_LEN];
    char second_name[STR_LEN];
} person_t;
 
/* В функцию передаётся 4(8) байтовый указатель на 32(64) битной системе. */
void good_dump(const person_t * person) {
    printf("%s %s\n", person->first_name, person->second_name);
}
 
 
/* Так тоже можно, но в функцию будут отправлены все аж 512 байт, что точно не ускорит работу */
void bad_dump(person_t person) {
    printf("%s %s\n", person.first_name, person.second_name);
}
Пример, конечно, утрированный, но думаю, суть отражает.


Цитата Сообщение от Devochka Посмотреть сообщение
Но здесь не пойму причину применения.
А вот это, честно говоря, и для меня загадка. Какой профит можно получить при сложении двух чисел, используя указатели на указатели на переменные с этими числами? Может я чего-то не понимаю, но для обучения работе с указателями можно было гораздо более наглядные и жизненные примеры придумать...
0
24.06.2012, 03:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 03:39
Привет! Вот еще темы с ответами:

Для чего нужны и зачем использовать smart-указатели? - C++
В Страуструпе не нашел, кто подскжает где можно про них прочитать ?)

Зачем здесь нужен static - C++
Дело в том что без него (без static) программка не работает корректно.

Зачем здесь символ новой строки? - C++
Стивен Прата, Язык программирования С++, глава 7, пример 7 Никак не пойму, зачем здесь double temp; int i; for(i=0; i<limit;...

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? - C++
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru