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

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

Войти
Регистрация
Восстановить пароль
 
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

Отличие инкриментов указателей - C++

30.04.2010, 23:04. Просмотров 399. Ответов 1
Метки нет (Все метки)

Чем отличатеся
++*p от
(*p)++ и от
*p++
вроде увеличивается значение а не адлрес указателя.....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2010, 23:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отличие инкриментов указателей (C++):

Отличие приведение типов указателей - C++
Чем отличаются при Base* a_ptr = new Derivered(); следующие строки: A) auto ptr = static_cast<Derived*>( a_ptr ); B) auto ptr =...

В чем отличие ссылочных переменных от указателей? - C++
Всем привет. Вопрос в теме, чем отличаются int a=5; int &p=a; от int a=5; int *p=&a; Кроме того, что ссылочная переменная...

В чем отличие указателей и массивов на примере strlen()? - C++
Здравствуйте уважаемые форумчаче. Появился вот такой вопрос. Почему функция strlen работает в таком случае: const int...

Массив указателей. Найти отличие между двумя конструкциями - C++
Привет! Возник вопрос в чем разница между char* arr и char arr не одно и тоже ли это? почему например когда я пишется char*...

В чем отличие двумерного массива типа char от массива указателей на char? - C++
В чем отличие двумерного массива типа char и массива указателей на char ?

по поводу указателей. Как правильно задавать массив указателей и его удалять? - C++
Т.е., например создаю указатель: TPoint *p_Point=NULL; а если массив? TPoint *p_MassPoint; //=?; как массив обнулить не ясно ...

1
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
01.05.2010, 00:56 #2
++*p и (*p)++ не имеют никакого отличия и инкрементируют то значение, на которое указывает p (разве что отличие в положении ++(до и после *p), что свойственно указателям, как и обычным переменным), а вот в случае *p++ инкрементируется сам указатель, а не то, на что он указывает)
одноместные операции * и ++ выполняются справа налево
C++
1
2
3
4
5
6
7
8
9
10
11
12
int *p, x = 10; 
p = &x;
(*p)++;
std::cout << *p << std::endl;   //на экране будет 11
 
x = 10;
std::cout << ++*p << std::endl;   //на экране будет 11
 
x = 10;
*p++;
std::cout << *p; //на экране будет левое число(мусор), так как мы инкрементировали
                 //сам указатель, а не то, на что он указывает
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2010, 00:56
Привет! Вот еще темы с ответами:

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? - C++
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты, для чего используются указатели на...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей - C++
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес...

Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) - C++
Уважаемые программисты, возникло несколько вопросов касательно указателей. Почему при выводе указателя на int нужна звёздочка (*), а...

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей - C++
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей. Эта специализация...


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

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

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