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

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

Войти
Регистрация
Восстановить пароль
 
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

арифметические действия с указателями не работают - C++

20.06.2013, 08:28. Просмотров 416. Ответов 6
Метки нет (Все метки)

На одном сайте (http://www.c-cpp.ru/books/arifmetich...s-ukazatelyami) написано, что с при увеличении указателя на единицу, значение по его адресу увеличится на длину его типа, например:
C++
#include <iostream>
using namespace std ;
 
int main ()
{
    int n = 40 ;
 
    int *p = &n ;
 
    p ++ ;
 
    cout << *p << endl ; // должно быть 44
}
Почему в результате не получается 44 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 08:28     арифметические действия с указателями не работают
Посмотрите здесь:

Арифметические действия с дробями C++
Арифметические действия в командной строке C++
C++ Арифметические действия с элементами массива
C++ Составить программу-калькулятор на 4 арифметические действия (проверить)
C++ создание файлов и арифметические действия
C++ Арифметические действия над массивами. Некорректный результат
C++ Дан массив. Провести арифметические действия над его элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
20.06.2013, 08:47     арифметические действия с указателями не работают #2
Вы не так поняли автора статьи. Он имел ввиду, что если увеличить адрес на один, то его фактический адрес увеличиться на размер типа в байтах.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 08:49     арифметические действия с указателями не работают #3
Цитата Сообщение от programina Посмотреть сообщение
На одном сайте (http://www.c-cpp.ru/books/arifmetich...s-ukazatelyami) написано, что с при увеличении указателя на единицу, значение по его адресу увеличится на длину его типа,
Там про другое написано, про адреса. Там, под содержанием указателя, имеется в виду адрес, который содержится в нём.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
20.06.2013, 08:53  [ТС]     арифметические действия с указателями не работают #4
Пaтрик, там написано, что указатель ссылается на целое число 2000, которое превратится в 2002 после инкримента, то на длину типа short int
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 08:56     арифметические действия с указателями не работают #5
Цитата Сообщение от programina Посмотреть сообщение
Пaтрик, там написано, что указатель ссылается на целое число 2000, которое превратится в 2002 после инкримента, то на длину типа short int
Там так написано:
...Для понимания арифметических действий с указателями предположим, что p1 - это указатель на целое, содержащий значение 2000, ...
Указатель на целое (значение этого целого не указано), содержит значение 2000 - адрес этого целого (значение, которого не указано). Написано, просто, не очень удачно.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
20.06.2013, 08:59  [ТС]     арифметические действия с указателями не работают #6
alsav22, то есть значение адреса равно 2000?

Добавлено через 1 минуту
Спасибо, теперь понятно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 09:06     арифметические действия с указателями не работают
Еще ссылки по теме:

Указатели и действия над указателями C++
Арифметические действия в массиве C++
Арифметические действия над числами C++
Дописать классу арифметические действия C++
C++ Арифметические действия с датами

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

Или воспользуйтесь поиском по форуму:
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 09:06     арифметические действия с указателями не работают #7
Цитата Сообщение от programina Посмотреть сообщение
то есть значение адреса равно 2000?
Да. В арифметике указателей, разговор идёт именно об адресах, которые содержатся в указателях (значениях указателей). О том, что эти адреса изменяются не так, как другие значения в обычной арифметике.
Yandex
Объявления
20.06.2013, 09:06     арифметические действия с указателями не работают
Ответ Создать тему
Опции темы

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