Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
John1992on
19 / 19 / 2
Регистрация: 09.04.2010
Сообщений: 123
#1

Непонятный синтаксис, указатели, типы, ссылки - C++

05.03.2014, 22:55. Просмотров 283. Ответов 1
Метки нет (Все метки)

В фрагменте программы, которая разбивает большое HEX число на части:
C++
1
2
3
4
5
6
7
8
9
unsigned __int8 *ptr8;
__int32 a;
Edit1->Text=("0x"+IntToHex(0x23DA6FEC,8));
a = StrToInt(Edit1->Text);
ptr8=(__int8*)&a;
Edit6->Text="0x"+IntToHex(*ptr8,2);
Edit5->Text="0x"+IntToHex(*(1+ptr8),2);
Edit4->Text="0x"+IntToHex(*(2+ptr8),2);
Edit3->Text="0x"+IntToHex(*(3+ptr8),2);
не понятна строчка " ptr8=(__int8*)&a; " - это преобразование адреса переменной a c __int32 в __int8 как я понял, но как оно работает?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 22:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятный синтаксис, указатели, типы, ссылки (C++):

Ссылки и указатели. Синтаксис - C++
Всем доброго времени суток. Не могу врубиться как использовать указатели и ссылки. Есть главная форма: .h private: // User...

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Непонятный синтаксис - C++
Вот есть обявление. sp<DataSource> source; sp<DataSource> это что? Спасибо!

Непонятный синтаксис. - C++
В VC 2010 вместо int main(int argc, char *argv) написано int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpcmdline,...

Непонятный синтаксис typedef в параметрах шаблона - C++
Отсюда: http://www.informit.com/articles/article.aspx?p=1881386&seqNum=2 namespace std { namespace chrono { typedef...

Непонятный синтаксис: что означает запись ::__1 ? - C++
Продолжаю изучать чудесную среду Clion, так вот, при переносе кода из одного файла в другой он интересным образом его изменил! Былоstruct...

1
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,235
05.03.2014, 23:12 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от John1992on Посмотреть сообщение
е понятна строчка " ptr8=(__int8*)&a; " - это преобразование адреса переменной a c __int32 в __int8 как я понял, но как оно работает?
да так и работает
адрес остается тот же самый но меняется база для адресной арифметики
вот у тебя есть строки
Цитата Сообщение от John1992on Посмотреть сообщение
Edit5->Text="0x"+IntToHex(*(1+ptr8),2);
Edit4->Text="0x"+IntToHex(*(2+ptr8),2);
Edit3->Text="0x"+IntToHex(*(3+ptr8),2);
допустим ptr8 указывает на адрес 100
если бы не приводил то
1+ptr8 указывал бы на 104 адрес
2+ptr8 на 108
3+ptr8 на 112
шагал бы через четыре байта( размер int)
а так
ptr8 указывает на 100 адрес
1+ptr8 на 101
2+ptr8 на 102
3+ptr8 на 103
шагаем на следующий байт

все это сделано для того чтобы int разбить на байты, хотя по моему мнению очень неуклюже

почитай про адресную арифметику, чтобы такие вопросы не возникали
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 23:12
Привет! Вот еще темы с ответами:

Ссылки. Разные типы. - C++
Доброй ночи. Уже как-то спрашивал, но нормального ответа не получил к сожалению. Есть код: #include <iostream> #include <stdlib.h> ...

Указатели и ссылки? - C++
Ниже приведёна программы которая вызывает функцию. В функции происходит следующее создаются 2 массива в которые записыватся чётные и...

Указатели и Ссылки - C++
извеняюсь,но никак не могу понять. int sum(int* inLeft, int* inRight) { if(inLeft == inRight) return *inLeft; ...

Указатели и ссылки - C++
Экспериментируя с указателями пришел к вот таким выводам: int a; //переменная int *b; //указатель int &c = a //ссылка на <a> ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.