Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
12 / 10 / 3
Регистрация: 31.10.2017
Сообщений: 126
1

Занимает ли операнд, не присвоенный в переменную память?

31.12.2019, 14:15. Показов 795. Ответов 10

Author24 — интернет-сервис помощи студентам
Ну вот такой вопрос. Вот такой вот код:
C++
1
2
int b = 0;
int a = b + 5;
Занимает ли число 5 память? Хранится ли оно в какой-либо ячейке? Число 0 отдельно от переменой b тоже занимает память? Или оно как-то сразу в ячейку переменной b кидается?
Я понимаю конечно, что вопрос дико странный, и ответ на него очевиден, но именно поэтому я его задал в разделе для начинающих.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2019, 14:15
Ответы с готовыми решениями:

Занимает ли память объявление структуры
вопрос такой например я объявил структуру, она начинает занимать память сразу после объявление...

Svchost занимает всю оперативную память
процесс занимает больше половины оперативки, иногда вся система замирает на секунд 10, даже мышка...

В текстовом файле c именем FN1 дана домашняя работа третьеклассника в формате: <операнд><знак><операнд>=<ответ> В качест
В текстовом файле c именем FN1 дана домашняя работа третьеклассника в формате:...

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

10
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
31.12.2019, 14:21 2
Цитата Сообщение от blbulyan Посмотреть сообщение
Занимает ли число 5 память?
Зашито в коде.
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
31.12.2019, 14:33 3
C++
1
2
3
4
int main()
{
    int b = 0;
}
на ассемблере будет
Assembler
1
2
3
4
5
6
7
main:
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-4], 0
        mov     eax, 0
        pop     rbp
        ret
Как видите 0 это код и никаких левых ячеек мы не используем
0
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
31.12.2019, 14:34 4
blbulyan, чтобы в будущем облегчить себе жизнь и ускорить процесс обучения, рекомендуется перед началом изучения С++ ознакомиться с основами информатики (подойдет курс 1-2 семестра любого технического ВУЗа, в сам ВУЗ поступать для этого не обязательно, если что ), в частности с основами языка ассемблера.

Ну и чтобы меня не обвинили в том, что я только куда-то посылаю, а на вопрос не отвечаю, вот:
https://godbolt.org/z/8J6eLd
Специально включил показ машинных кодов, чтобы было понятно куда деваются 0 и 5.
0
12 / 10 / 3
Регистрация: 31.10.2017
Сообщений: 126
31.12.2019, 14:48  [ТС] 5
Кажется въехал.
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
31.12.2019, 14:54 6
Если захотите поучить ассемблер, это можно использовать как шпору)
1
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
31.12.2019, 15:37 7
Цитата Сообщение от blbulyan Посмотреть сообщение
Кажется въехал.
как мне помниться, в ассемблере литерал может быть частью самой команды.
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
31.12.2019, 15:45 8
Цитата Сообщение от _stanislav Посмотреть сообщение
как мне помниться, в ассемблере литерал может быть частью самой команды.
Да, не из пустоты оно же берёт его?)

Добавлено через 59 секунд
Но адресная память, в том числе и стек, не страдают из-за него
0
Заблокирован
31.12.2019, 15:51 9
blbulyan, на такие вопросы великолепно отвечает IDA - неотъемлемый инструмент программиста.
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
31.12.2019, 15:53 10
Цитата Сообщение от Дига Посмотреть сообщение
на такие вопросы великолепно отвечает IDA - неотъемлемый инструмент программиста.
там ссылочку godbolt скидывали, ничем не хуже и качать не надо

Добавлено через 32 секунды
Только, если вы не чужую прогу собрались дизассемблировать
0
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
31.12.2019, 15:59 11
Цитата Сообщение от _stanislav Посмотреть сообщение
как мне помниться, в ассемблере литерал может быть частью самой команды.
Assembler
1
2
3
4
5
; int i = 5555555;
C7 45 F4 63 C5 54 00 mov         dword ptr [i],54C563h  ; тут литерал 5555555 (63 C5 54) часть кода операции
; int j = i;
8B 45 F4             mov         eax,dword ptr [i]  
89 45 E8             mov         dword ptr [j],eax
0
31.12.2019, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2019, 15:59
Помогаю со студенческими работами здесь

Выводить присвоенный букве символ
Всем привет! подскажите пожалуйста, как присвоить цифре или букве определённое значение? к примеру...

Как отменить присвоенный стиль
создал нумерованный список, теперь хочу ему поставить номера, но не могу это сделать т.к. в...

Выделить память под переменную
объявляет переменные и выделяет память под них как в с++ ?? обьявить переменную и выделить ей...

Присвоенный сайту регион в поисковой выдаче Яши
Заметил, что теперь в серпе показывают регион присвоенный сайту. Заметил такое только в московской...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru