Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > чем можно заменить инкремент указателя?


Автор: Спец 8.2.2007, 22:13
нужно передвинуть указатель на следующий объект
делаю так:
char a[5] = "abcd";
char *b = a;
*b = *b+1;

но не то) как сделать? кроме инкремента

Автор: Anikmar 8.2.2007, 22:22
Надо b++

*b - это разыменовывание указателя. Т.е. вы инкрементируете не указатель, а значение по его адресу.

Автор: Daevaorn 8.2.2007, 22:26
Цитата(Спец @  8.2.2007,  23:13 Найти цитируемый пост)
 как сделать? кроме инкремента 

чем инкремент то не угодил?

Автор: Anikmar 8.2.2007, 22:30
Цитата(Спец @  8.2.2007,  22:13 Найти цитируемый пост)
но не то) как сделать? кроме инкремента 

Что-то я не учел такой пост...

Передвинуть указатель на следующую позицию - это значит увеличить его значение. Инкремент - это увеличение на единицу.

Без инкремента это в принципе не возможно (если использовать один и тот же указатель) По-любому надо прибавить к нему единицу тем или иным способом. Я знаю такие:

b++;
b+=1;
b = b +1;

Можно использовать индексацию:
b[0] = ...
b[1] = ...
b[i] = ....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)