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

Переменные в c++

04.02.2013, 19:32. Показов 1107. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться в теории. Так вот допустим мы создаем переменную в стеке
C++
1
int a;
тогда в стеке где то по адресу скажем 004 выделяется 4 байта в которые записывается переменная в двоичном коде.
Фррр а вот теперь вопрос а где храниться сам адрес 004 , откуда программа знает что переменная храниться в этом адресе? она что где то его сохраняет ?а если мы где то храним адрес то как мы узнаем где мы его храним? а размер переменной где храниться????
И вот еще вопрос , допустим берем
C++
1
2
3
4
5
class uf
{
int a;
int b;
}
как компилятор знает что класс состоит из двух переменных ведь в оперативной памяти просто сохраняется размер и начало ?или как?
Если непонятно пишу вы горите я обещаю исправить!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2013, 19:32
Ответы с готовыми решениями:

Создать программу обработки массивов структур используя структурные переменные и переменные типа объеденения
Создать массив структур, каждая из которых состоит из следующих елементов: факультет, курс, группа, фамилия студента и екзаменационная...

Переменные,значение функции,вспомогательные переменные.
1)Даны переменные A,B,C.Изменить их значения,переместив их содержимое из A-в B,B-в C,C-в A,и вывести новые значения переменных A,B,C. ...

Создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар
Здравствуйте. Необходимо создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар. ругается в...

8
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
04.02.2013, 19:46
Цитата Сообщение от Kristinochka Посмотреть сообщение
тогда в стеке где то по адресу скажем 004 выделяется 4 байта в которые записывается переменная в двоичном коде.
не обязательно в стеке. компилятор знает где он создает память для переменных и подставляет их адреса, т.е. не "мы" знаем адреса, а компилятор.
Цитата Сообщение от Kristinochka Посмотреть сообщение
как компилятор знает что класс состоит из двух переменных ведь в оперативной памяти просто сохраняется размер и начало ?или как?
компилятор знает и адрес начала и адрес конца и сколько переменных и какие они и т.д. обо всем этом заботится компилятор

Добавлено через 54 секунды
знаешь что такое отладчик? типа олли дебагера? вот можешь открыть любую прогу в нем, там только адреса, т.е. они не беруться от куда-нибудь, а сразу стоят в коде
0
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 3
04.02.2013, 19:50  [ТС]
Я еще больше запуталась !!! но ведь операционная система сама выбирает адреса в процессе работы? разве нет?
0
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
04.02.2013, 19:59
а не легче забить это работа компилира а не наша
1
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
04.02.2013, 19:59
Если мы говорим о стеке, то эти адреса отсчитываются как смещение от начала стека, которое было на момент запуска функции. Хотя само начало может быть разным в разных случаях, но сами смещения постоянны.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
04.02.2013, 20:05
http://habrahabr.ru/post/128991/
1
 Аватар для HardLogin
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
04.02.2013, 20:08
Цитата Сообщение от Nick Alte Посмотреть сообщение
Если мы говорим о стеке, то эти адреса отсчитываются как смещение от начала стека, которое было на момент запуска функции. Хотя само начало может быть разным в разных случаях, но сами смещения постоянны.
мой мозг!
1
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
04.02.2013, 20:16
HardLogin, вобщем не вдумывайся в следующую фразу, просто прими как она есть: все смещение в коде даются относительными. т.е. куда бы мы не зугрузили нашу прогу (хоть в нулевой адрес, хоть в 100500-й, смещения будут относительно этого адреса). вот пример: смещение переменной в коде 1000h, загружена прога по адресу 5000000h, тогда "физический" адрес переменной будет 5001000h

Добавлено через 2 минуты
HardLogin, вы с ассемблером не знакомы? хоть чуть-чуть?
1
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 3
04.02.2013, 20:24  [ТС]
более менее поняла , спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2013, 20:24
Помогаю со студенческими работами здесь

Внутриблочные переменные не могут иметь те же имена, что и переменные из блока верхнего уровня
program matr; uses crt; const n = 5; m = 5; var

Почему в локальном классе доступны финальные переменные или переменные инициализированные при объявлении
Добрый вечер. Объясните пожалуйста, почему в локальном классе могут использоваться только финальные переменные или переменные которые были...

Запись из формы данных в переменные php файла, данные из переменные используются в других файлах сайта
Всем привет! Ребят, подскажите пожалуйста! Есть один файл с обычной html формой, в которой обычные данные (фио, вэб-ссылка, контактные...

Переменные экземпляра, класса, константы и переменные readonly
Как эту задачу записать в C#? Переменные экземпляра, класса, константы и переменные readonly: – Ф.И.О., – должность, – базовый...

Простые переменные и ссылочные переменные
Подскажите пожалуйста. Допустим напишем в коде: String s1 = "Hello"; Получается, что переменная s1 содержит ссылку на область памяти,...


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

Или воспользуйтесь поиском по форуму:
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 05.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