Указатели
Как, наверное, и у многих начинающих, у меня появились вопросы, касающиеся указателей.
1) Операция &x возвращает указатель. Но почему? Это ведь просто шестнадцатеричное число! 2) Почему имеет значение тип указателя? Ведь это просто ссылка на переменную. Вопросы, не касающиеся указателей: 3) Почему глобальные переменные при отсутствии инициализации программистом принимают нулевые значения, а локальные - нет? 4) Может ли произойти конфликт между программами - одна заняла память другой. |
Ответ: Указатели
0x - это шестнадцатеричное число в плюсах
|
Ответ: Указатели
2. От типа данных, зависит размер памяти, который будет занимать данное. И чтобы знать сколько нам ваще получать битов данных, хранится и тип указателя. Либо для каждого участка в памяти, нада было хранить заголовок о занимаемой памяти - а это тупизм (расход памяти впустую).
|
Ответ: Указатели
1) Колдунство :)
2) Чтобы через указатель работать с его содержимым, не нужен тип - есть void* 3) Потому, что глобальные создаются один раз вначале и их "не в падлу" обнулить, а вот локальные могут генериться внутри ф-ции которая вызывается много-много раз в цикле и все лишние телодвижения с ними замедляют программу. 4) нет. PS А может лучше купить/нагуглить книжку по С/С++? Это будет эффективнее вопросов на форуме. |
Ответ: Указатели
Цитата:
Цитата:
Но как так, ведь когда ты пишешь Код:
int a; Код:
3) Потому, что глобальные создаются один раз вначале и их "не в падлу" обнулить, а вот локальные могут генериться внутри ф-ции которая вызывается много-много раз в цикле и все лишние телодвижения с ними замедляют программу. Код:
4) нет. Спасибо за ответы! |
Ответ: Указатели
Код:
[off] > [offtop] |
Ответ: Указатели
Hagrael,
Вероятно это потому, что по умолчанию в С++ адреса в явном виде пишутся в шестнадцатиричной системе. Сделай преобразование типов и будет тебе счастье. Указатель - это просто адрес записанный в 4 или 8 байт в зависимости от разрядности системы, а чтобы через него работать с тем, что по этому адресу лежит - нужно знать что там лежит, вот за этим ему и нужен тип. У каждой своя область памяти, за попытку подмять чужую ОС бъёт битой по голове. Думаю, тебе будет полезно начать не с изучения плюсов, а с архитектуры компов. |
Часовой пояс GMT +4, время: 09:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot