Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
maksas
1 / 1 / 0
Регистрация: 12.10.2013
Сообщений: 11
#1

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

30.12.2013, 03:08. Просмотров 392. Ответов 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....но почему-то залезная бошка думает по-иначему....ХЕЛП
http://www.cyberforum.ru/cpp-beginners/thread1886254.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 03:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос не работает инкрементация указателя (C++):

Как работает инкрементирование указателя?
#include &lt;iostream&gt; #include &lt;cctype&gt; using namespace std; int main(){...

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

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

Инкрементация значения в map
for (busRequest = apointCollection.begin(); busRequest !=...

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

4
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7002 / 3295 / 448
Регистрация: 04.12.2011
Сообщений: 9,115
Записей в блоге: 5
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
30.12.2013, 13:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 13:59
Привет! Вот еще темы с ответами:

Создание указателя на экземпляр класса, описанного после объявления указателя
Здравствуйте! Проблема в том, что нужно сделать так: class A{ public: B*...

Инкрементация (не могу понять почему так?)
Гуру в программировании на C++ начала изучать язык, и сразу вопросы почему при...

Использование указателя. Почему глобальная переменная работает, а указатель нет?
Не понимаю почему не работают указатели. Вроде все просто а результат не...

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


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

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

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