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

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

Войти
Регистрация
Восстановить пароль
 
maksas
1 / 1 / 0
Регистрация: 12.10.2013
Сообщений: 11
#1

не работает инкрементация указателя - C++

30.12.2013, 03:08. Просмотров 337. Ответов 4
Метки нет (Все метки)

кинул мне сегодня знакомый програмку...нужно было переделать ее с использованием указателя

суть в чем...программа - обычная викторина, 8 вопросов, 4 варианта, из которых 1 правильный....если вопрос правильный, вызывалась функция otvet(&points), в которой

C++
1
2
3
4
5
void otvet(int *points)
{
    cout << "Вы выбрали правильный ответ!" << endl;
    *points++;
}
на первый взгляд, вроде все норм...но....постоянно выбивало 0...независимо от к-ства правильных ответов....в конце points=0...
понял, что ошибка в функции...почему-то не инкрементирует *points...и...после нескольких минут танцов с бубнов стало ясно, что *point++ никак уж не канает....

попробовал ++*point
попробовал *point+=1
попробовал *point=*point+1

все работает...а от при *point++ никак....и немогу понять...указатель (ну эта звездечка) имеет больший приоритет ежели додавание...значит оно берет значение point при увеличивает на 1....но почему-то залезная бошка думает по-иначему....ХЕЛП
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 03:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не работает инкрементация указателя (C++):

Инкрементация указателя по членам класса - C++
Вот такая задачка у меня попалась на тестировании: &quot;Корректен ли данный код? Если да, то что будет выведено на экран? Аргументируйте свой...

Как работает инкрементирование указателя? - C++
#include &lt;iostream&gt; #include &lt;cctype&gt; using namespace std; int main(){ char *p; char str=&quot;This Is A Test&quot;; cout &lt;&lt; &quot;исходная...

Инкрементальное увеличение значения указателя не работает - C++
Сразу скажу, что практической цели никакой нет, просто пытаюсь понять принцип работы изменения значения указателя. Есть такой код: ...

Инкрементация числа - C++
Всем доброго времени суток. Число X увеличивается от 1 до 1000 000. Какой написать алгоритм чтобы число Y от числа X увеличилось в цикле от...

Инкрементация значения в map - C++
for (busRequest = apointCollection.begin(); busRequest != apointCollection.end(); busRequest++) { double Min = DBL_MAX; int...

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? - C++
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании указателя,его значение(адресс) увеличивается на 4 (размер int в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6467 / 3115 / 306
Регистрация: 04.12.2011
Сообщений: 8,590
Записей в блоге: 4
30.12.2013, 03:31 #2
Цитата Сообщение от maksas Посмотреть сообщение
указатель (ну эта звездечка) имеет больший приоритет ежели додавание
Аж никак. Разадресация младше инкремента.
C++
1
2
3
4
5
int a[] ={3,2,1};
int *b=a;
cout<<*b++<<endl;// 3 инкремент старше  разыменования и делается раньше, но подставляется прежнее значение указателя
//и разыменовывается, так как используется постфиксная форма. Поэтому и 3
cout<<*b;//2 тут уже разадресован инкрементированный указатель
1
maksas
1 / 1 / 0
Регистрация: 12.10.2013
Сообщений: 11
30.12.2013, 04:06  [ТС] #3
все, спасибо...разобрался)))
ох уж этот с++, ох уж его указатели...который день уже сижу над ними...зачем их только понапридумывали
0
Croessmah
30.12.2013, 08:34
  #4

Не по теме:

Цитата Сообщение от maksas Посмотреть сообщение
зачем их только понапридумывали
ну попробуйте без них

1
IGPIGP
30.12.2013, 13:59     не работает инкрементация указателя
  #5

Не по теме:

Croessmah, без них невкусно.
Помню у меня когда-то было 3 барьера для понимания темы. Если крупные считать.
1. Понять, что разадресация и разименование это синонимы. Пока не нашёл прямое указание мучился страшно.
2. Понять что "прямо", это "по значению" то есть передача копии, а "косвенно" это "по ссылке", то есть передача, непосредственно места хранения.
3. Понять, что указатель на char это совершенно уникальная штука. Беда в том, что волею судеб начал с него. С тех пор никому не советую.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 13:59
Привет! Вот еще темы с ответами:

Использование указателя. Почему глобальная переменная работает, а указатель нет? - C++
Не понимаю почему не работают указатели. Вроде все просто а результат не правильный. И еще если я объявляю 2-3-4 указателя, у них...

Как сделать функцию от указателя на класс и указателя на метод? - C++
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

Преобразование кода без указателя в код с использованием указателя - C++
Правильно ли выполнил? Исходный код без указателя #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; using namespace...

Инкрементация (не могу понять почему так?) - C++
Гуру в программировании на C++ начала изучать язык, и сразу вопросы почему при выполнении #pragma argsused #include &lt;conio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.12.2013, 13:59
Ответ Создать тему
Опции темы

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