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

Предыдущая тема Следующая тема Перейти вниз

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

Сообщение  Eric-S в Пн Авг 18, 2008 8:50 pm

У меня возникли некоторые проблемы с переводом.
Да и не совсем понятно, как что правильно называеться.

pointer, ptr, префиксы "@" и "*".
Допустим "@" и соответственно ptr это "указатель" или "ссылка".
Тогда, что такое "pointer" и "*".

"*" это "value of", насколько я понимаю. Т.е. смещение значения.

Но pointer, это не смещение однозначно!


Если кто знает, пожалуйста, чётко распишите, ху ис ху!?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  tux в Вт Авг 19, 2008 9:14 am

Наскока я понимаю ptr и pointer - это одно и тоже (просто видать каму как удобней) и о необходим тока приобъявлении указателя на переменную.
@ - это оператор получения адреса переменной (аналог & в Си)
* - оператор "разименовывания" (помоему так ето называется), те получение значения переменной по ее адресу (точно так же как Си)
@ и * являются противоположными по фунциям операторы, см пример
Код:

dim as byte pVar=55
dim as byte ptr ppVar
ppVar=@pVar
print pVar
print ppVar
print @pVar
print *ppVar
print *@*@*@*@*@*@pVar
print @*@*@*@*@*@*ppVar
sleep
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  Eric-S в Вт Авг 19, 2008 2:00 pm

Ок! Значит разъименовывание.

Поржал над *@*@*@ это нечто! Если оно ещё и работает, то однозначно писец.


Только вот ptr и pointer разные фишки.
pointer, я использую, там где должно быть разъыминовывание.


Код:

dim a as integer
dim pa as integer ptr
pa = @a
va = *pa

print a
print @pa
print va

На самом деле в таком примере нет смысла.

Практическое же применение pointer я нашел только для объектов класса.


Самое что интересное pointer это именно указатель, а не данные. Правда обосновать не могу, нужны тесты.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  tux в Вт Авг 19, 2008 2:15 pm

Из родного справочника:

Ptr
Dim symbolname As DataType {Ptr | Pointer}
Declares a pointer variable. The same as Pointer.

Pointer
Dim symbolname As DataType {Ptr | Pointer}
Declares a pointer variable. The same as Ptr.
те "Объявление переменной указателя. Тоже самое что и Ptr"

А указатель это четырехбайтовая переменная наподобе integer (но для компилятора она понимается именно как указатель), которая хранит адрес какого либо блока данных или другой переменной.
По идее можно указателю присвоить прям из переменной integer любой адрес, тока помоему компилятор будет выдавать предупреждение о несоответствии типов.
Опреатор @ какраз возвращает значение типа указателя, моэтому и требуется, чтобы это значение присваивалось переменной типа ptr.
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  Eric-S в Вт Авг 19, 2008 4:19 pm

Ну с природой указателя понятно.
А разделили его от integer, на случай если будут изменения в размере. Между прочим, не integer, а uinteger, так как положительное целое.

К тому же компилятор делает дополнительные проверки. Как я недавно узнал. Проверка заключается в том, что тип данных (на который предположительно ссылаеться) проверяется, подходит ли он по контексту. А с uintege, сразу бы вылитела ошибка, что тип данных не верен.

Но вот цитатки из справочника... Мой английский не настолько крут, чтобы врубиться в чём прикол.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  tux в Вт Авг 19, 2008 5:10 pm

На счет справочника, там про pointer написано, что ето то же самое что и ptr, а про ptr наоборот.

А в подобном коде компилятор ругнется, чтото про несоответствие типов, но скомпилит и прога работать будет нормально
Код:

dim as byte pVar
dim as uinteger pInt
pInt=@pVar
print pInt
sleep
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: терминология, или как что называеться по русский

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения