С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Указатели и действия над указателями - C++
char *ptr, result, s1; ptr = strtok(s1, &quot; &quot;); if (strstr(result, strcpy(&quot; &quot;, strcpy(ptr, &quot; &quot;))) == NULL) strcat_s(result,...

Арифметические действия с дробями - C++
Добрый вечер! Хочу попросить в помощи обратить внимание на ошибку решения следующего задания: Создайте калькулятор, выполняющий четыре...

Арифметические действия в массиве - C++
Арифметические действия в массиве Задачи положено переписывать!

Арифметические действия с датами - C++
Вообщем есть у меня программа которая точно высчитывает разницу дней между нынешней датой, и будущей. Например с 06/26/2016 ( сегодня )...

Дописать классу арифметические действия - C++
Помогите. Нужно сделать сложение, вычитание, умножение и деление. #include &lt;iostream&gt; using namespace std; class ch {private: int...

Арифметические действия с элементами массива - C++
Когда барон Мюнхаузен решил пообедать, он привязал к длинной веревки кусок сала и забросил его в воздух. Стая диких гусей пролетала тем...

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

Добавлено через 1 минуту
Спасибо, теперь понятно.
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 09:06 #7
Цитата Сообщение от programina Посмотреть сообщение
то есть значение адреса равно 2000?
Да. В арифметике указателей, разговор идёт именно об адресах, которые содержатся в указателях (значениях указателей). О том, что эти адреса изменяются не так, как другие значения в обычной арифметике.
1
20.06.2013, 09:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 09:06
Привет! Вот еще темы с ответами:

создание файлов и арифметические действия - C++
1. В c++ есть возможность создания файлов, чтения из файла, запись в файл.. а есть ли возможность сотворить такое: Создать файл с...

Арифметические действия в командной строке - C++
Осуществить заданные в командной строке арифметические действия (сложение и вычитание) над целыми числами и вывести в простейшее диалоговое...

Арифметические действия над числами - C++
Арифметические действия над числами пронумерованы следующим образом: 1 – сложение, 2 – вычитание, 3 – умножение, 4 – деление. Дан номер...

Составить программу-калькулятор на 4 арифметические действия (проверить) - C++
Составить программу-калькулятор на 4 арифметические действия, используя операторы ветвления. #include &lt;iostream.h&gt; #include...


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

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

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