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

Указатели c++

22.11.2020, 17:32. Показов 3391. Ответов 8

Студворк — интернет-сервис помощи студентам
Дан int x[5] , что такое &x+1?
То есть имя массива, в данном случае x, хранит в себе адрес первого элемента массива, если мы выведем x просто выйдет именно адрес, *x - его значение.
&x+1 выводит адрес которых хранится сразу за массивом и в данном случае он на 4 байта больше последнего элемента, я не могу понять, что же такое &x+1 вообще, преподавателю я говорил, что это ячейка памяти в которой хранится адрес указателя на второй элемент массива, но она сказала что это неверно или что-то в этом роде. Объясните мне пожалуйста!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 17:32
Ответы с готовыми решениями:

указатели
Вот рабочая программа, но нужно сделать так, чтобы был реализован способ передачи объекта класса rect по указателю из функции main() в...

Указатели в с++ и их смысл
Объясните пожалуйста для чего нужны указатели и что это вообще? я в книжках смотрел по с++ но везде одно и тоже,и я не понимаю. И где эти...

Указатели на функцию
метод правых прямоугольников , N=100 – количество точек разбиения отрезка

8
 Аватар для Recrut_rf
381 / 324 / 65
Регистрация: 14.10.2014
Сообщений: 1,377
22.11.2020, 19:47
Niyaz716, предлагаю немного помозговать над этим кодом (просто скомпилировать его и проанализировать вывод)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
 
int main()
{
    
    int x[5] = {0,1,2,3,4};
    
    cout << &x[0] << endl;
    cout << &x[1] << endl;
    cout << &x[2] << endl;
    cout << &x[3] << endl;
    cout << &x[4] << endl;
    
    cout << "---------------"<< endl;           
            
    //cout << &x+0 << endl;
    //cout << &x+1 << endl;
    //cout << &x+2 << endl;
    //cout << &x+3 << endl;
    cout << &x+4 << endl;
     
}
0
фрилансер
 Аватар для Алексей1153
6444 / 5639 / 1128
Регистрация: 11.10.2019
Сообщений: 15,003
22.11.2020, 20:41
Лучший ответ Сообщение было отмечено Niyaz716 как решение

Решение

Цитата Сообщение от Niyaz716 Посмотреть сообщение
&x+1
указатель на объект + размер объекта в байтах (sizeof(x)). Поэтому и
Цитата Сообщение от Niyaz716 Посмотреть сообщение
&x+1 выводит адрес которых хранится сразу за массивом
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    int x[5];
    std::cout<<sizeof(x)<<'\n'<<&x<<'\n'<<&x+1;
}
20
0x7ffe04683230
0x7ffe04683244


20==0x14
0x7ffe04683244-0x7ffe04683230==0x14
1
10 / 7 / 3
Регистрация: 18.11.2020
Сообщений: 26
23.11.2020, 22:28
1) адрес массива такой же, как адрес 1го элемента

2) x не везде кастуется в указатель на 1й элемент, а только тогда, когда это логично
к примеру,

C++
1
std::cout<<x+1;
скастуется в &x[0]+1, потому что в данном выражении указатель на первый элемент логичен, а массив нет.


C++
1
std::cout<<&x+1;
не скастуется в указатель на 1й элемент, это будет адрес массива(как переменной типа данных массив) +1, т.е. адрес за массивом.

Здесь массив вполне вписывается в логику, а указатель на элемент вроде как нет, поэтому не кастуется в указатель на первый элемент.
1
0 / 0 / 0
Регистрация: 18.11.2020
Сообщений: 4
24.11.2020, 20:10  [ТС]
Получается &x+1 это сдвиг на вес массива и все? и хранится в нем мусор, если не используется данный адрес в коде?
0
фрилансер
 Аватар для Алексей1153
6444 / 5639 / 1128
Регистрация: 11.10.2019
Сообщений: 15,003
24.11.2020, 20:15
Niyaz716, нет там веса, есть размер в байтах. Сдвиг на размер массива в байтах

а мусор там или не мусор - неизвестно, скорее всего что-то лежащее на стеке. В любом случае - так делать не надо
0
0 / 0 / 0
Регистрация: 18.11.2020
Сообщений: 4
24.11.2020, 20:32  [ТС]
Алексей1153, ну да , под словом вес я имел в виду размер массива в байтах, извиняюсь). &x + 1 будет равнозначно &x+sizeof(x/&x)? Адреса будут совпадать?
0
фрилансер
 Аватар для Алексей1153
6444 / 5639 / 1128
Регистрация: 11.10.2019
Сообщений: 15,003
24.11.2020, 21:29
Цитата Сообщение от Niyaz716 Посмотреть сообщение
&x + 1 будет равнозначно &x+sizeof(x/&x)
нет

x/&x - это вообще какая-то бессмыслица. И не скомпилируется

вот так будет равенство
((uint8_t*)(&x + 1)) == ((uint8_t*)&x+sizeof(x))
1
0 / 0 / 0
Регистрация: 18.11.2020
Сообщений: 4
24.11.2020, 21:41  [ТС]
Алексей1153, x/&x - это я просто не знал что именно вставить в скобки)) Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2020, 21:41
Помогаю со студенческими работами здесь

Почему равны указатели??
Вот в этой вот программе первый ответ : &quot;равны&quot;, т. е. указатели равны, но Почему? #include &lt;iostream&gt; using namespace std;...

Степень через указатели
Ребят, помогите пожалуйста! Трабл жуткий! У меня задача есть, а я с ней повис совсем( Нужно написать функцию, которой передают целое...

Списки, динамическая память и указатели
Нужна помощь! Требуется написать функцию rearrangment( ), меняющую i-ю и j-ю строки текста. То бишь нужно создать однонаправленный...

Защита памяти через указатели
я новичок, это раз. ) делаю тетрис, и возникла проблема с указателями. знаю что они хитрые, но продумывал код и писал его чтоб не...

Необходимо разобраться с кодом: указатели на Long
Имеем программный код, который реализует блочный алгоритм шифрования - Tiny Encryption Algorithm или TEA. Если точнее то 2 функции по...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД 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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru