Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 26

Не понимаю почему так выходит

30.05.2022, 00:48. Показов 869. Ответов 4

Студворк — интернет-сервис помощи студентам
Тут такое дело. Разбирался с указателями и в одном из видео в Ютубе наткнулся на вот такую формулу (p + SIZE) - arr. Ютубер говорит что таким образом вычитается указатель из указателя и у него получается в итоге по вычислениям 10. У меня же выходит 20. Почему 20 я никак не могу понять. Даже в отладчике не могу понять почему 20.
Я приложил скрин где у меня в консоли выводит 20. p по адресу равно вообще -858993460, а arr = 1. Каким образом выходит 20?
Объясните понятным языком, прошу.
Миниатюры
Не понимаю почему так выходит  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2022, 00:48
Ответы с готовыми решениями:

не понимаю почему выходит ответ Nan. Как исправить ?
#include <iostream> #include <cmath> #include <cstdio> #include <locale> using namespace std; int main () { double x,...

Не понимаю, что не так, почему не работает
#include<cstdlib> #include <stdio.h> #include <conio.h> #include "iostream" using namespace std; void main() {int *a,i,N; ...

Не понимаю почему не выходит из цикла
Вот в чём проблема. В другой процедуре я заполняю массив Zak и Zap, и они имеют некоторые значения. Но при нажатии на клавишу, запускается...

4
Just Do It!
 Аватар для XLAT
4188 / 2643 / 654
Регистрация: 23.09.2014
Сообщений: 8,871
Записей в блоге: 3
30.05.2022, 01:28
Лучший ответ Сообщение было отмечено Dante20171 как решение

Решение

SIZE = 10

C++
1
2
int* p = arr + SIZE;
std::cout << (p + SIZE) - arr;
C++
1
std::cout << (arr + SIZE + SIZE) - arr;
ответ: SIZE + SIZE = 20
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
30.05.2022, 01:39
Цитата Сообщение от Dante20171 Посмотреть сообщение
и в одном из видео в Ютубе наткнулся на вот такую формулу (p + SIZE) - arr.
Так а что такое p у вашего ютубера и у вас? Очевидно, разные веши. Потому и разные результаты.
0
1 / 1 / 0
Регистрация: 17.04.2018
Сообщений: 26
30.05.2022, 11:15  [ТС]
Понял (1 + 20 + 20) - 1 = 20
Спасибо большое. С утра проснулся, в голове ясно стало и + еще ваше выражение дало мне понять в чем дело.
Я к указателям никак не привыкну, вижу какое-то выражение приравненное к указателю и сразу становится сложно. Но я совсем забыл что выражения тоже могут по какому-то адресу находиться, а не только числа. Не додумался развернуть формулу как вы.
1
Just Do It!
 Аватар для XLAT
4188 / 2643 / 654
Регистрация: 23.09.2014
Сообщений: 8,871
Записей в блоге: 3
31.05.2022, 11:08
Цитата Сообщение от Dante20171 Посмотреть сообщение
Я к указателям никак не привыкну
1. любые данные лежат в ячейках памяти.
2. эти ячейки пронумерованные и номера их называется адресами.
3. ячейка памяти которая содержит такой номер(адрес) называется указателем.
4. эта ячейка памяти с указателем также имеет свой номер, который адрес.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{   
    int arr[] = {1,2,3,4,5};
    
    int* a = arr;
    
    std::wcout << "arr   = " << arr   << '\n'; /// адрес того, куда указывает указатель arr.
    std::wcout << "&arr  = " << &arr  << '\n'; /// адрес указателя, упс ... arr = a (ERROR!);
    std::wcout << "&a    = " << &a    << '\n'; /// адрес указателя.
    std::wcout << " a    = " <<  a    << '\n'; /// адрес данных.
    std::wcout << "&a[0] = " << &a[0] << '\n'; /// адрес данных.
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2022, 11:08
Помогаю со студенческими работами здесь

Не понимаю почему так работает json
https://private-e9dfb8-videotest3.apiary-mock.com/videos - есть такой файл. При помощи var xhr = new XMLHttpRequest(); ...

Ошибка, не понимаю почему так происходит
Не нужен ответ от задачи, но сам начал решать, возникает ошибка, ошибка в for или range(), но не понимаю почему. Задача: Условие ...

Не совсем ошибка, просто я не знаю почему так выходит
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

Не понимаю почему себя ведет так скрипт
Доброго времени суток, подскажите, что не так со скриптом? &lt;script type=&quot;text/javascript&quot;&gt; &lt;?php echo &quot;var...

Не понимаю, почему амплитуда синусоиды равна 0.5, должна быть единица. Что не так?
По формуле дискретного преобразования Фурье делаю анализ сигнала. В качестве тестового сигнала подаю самую обычную синусоиду с амплитудой =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru