терминология, или как что называеться по русский
Участников: 2
FreeBasic :: Другое :: Документация
Страница 1 из 1
терминология, или как что называеться по русский
У меня возникли некоторые проблемы с переводом.
Да и не совсем понятно, как что правильно называеться.
pointer, ptr, префиксы "@" и "*".
Допустим "@" и соответственно ptr это "указатель" или "ссылка".
Тогда, что такое "pointer" и "*".
"*" это "value of", насколько я понимаю. Т.е. смещение значения.
Но pointer, это не смещение однозначно!
Если кто знает, пожалуйста, чётко распишите, ху ис ху!?
Да и не совсем понятно, как что правильно называеться.
pointer, ptr, префиксы "@" и "*".
Допустим "@" и соответственно ptr это "указатель" или "ссылка".
Тогда, что такое "pointer" и "*".
"*" это "value of", насколько я понимаю. Т.е. смещение значения.
Но pointer, это не смещение однозначно!
Если кто знает, пожалуйста, чётко распишите, ху ис ху!?
Re: терминология, или как что называеться по русский
Наскока я понимаю 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
Re: терминология, или как что называеться по русский
Ок! Значит разъименовывание.
Поржал над *@*@*@ это нечто! Если оно ещё и работает, то однозначно писец.
Только вот ptr и pointer разные фишки.
pointer, я использую, там где должно быть разъыминовывание.
На самом деле в таком примере нет смысла.
Практическое же применение pointer я нашел только для объектов класса.
Самое что интересное pointer это именно указатель, а не данные. Правда обосновать не могу, нужны тесты.
Поржал над *@*@*@ это нечто! Если оно ещё и работает, то однозначно писец.
Только вот ptr и pointer разные фишки.
pointer, я использую, там где должно быть разъыминовывание.
- Код:
dim a as integer
dim pa as integer ptr
pa = @a
va = *pa
print a
print @pa
print va
На самом деле в таком примере нет смысла.
Практическое же применение pointer я нашел только для объектов класса.
Самое что интересное pointer это именно указатель, а не данные. Правда обосновать не могу, нужны тесты.
Re: терминология, или как что называеться по русский
Из родного справочника:
А указатель это четырехбайтовая переменная наподобе integer (но для компилятора она понимается именно как указатель), которая хранит адрес какого либо блока данных или другой переменной.
По идее можно указателю присвоить прям из переменной integer любой адрес, тока помоему компилятор будет выдавать предупреждение о несоответствии типов.
Опреатор @ какраз возвращает значение типа указателя, моэтому и требуется, чтобы это значение присваивалось переменной типа ptr.
те "Объявление переменной указателя. Тоже самое что и Ptr"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.
А указатель это четырехбайтовая переменная наподобе integer (но для компилятора она понимается именно как указатель), которая хранит адрес какого либо блока данных или другой переменной.
По идее можно указателю присвоить прям из переменной integer любой адрес, тока помоему компилятор будет выдавать предупреждение о несоответствии типов.
Опреатор @ какраз возвращает значение типа указателя, моэтому и требуется, чтобы это значение присваивалось переменной типа ptr.
Re: терминология, или как что называеться по русский
Ну с природой указателя понятно.
А разделили его от integer, на случай если будут изменения в размере. Между прочим, не integer, а uinteger, так как положительное целое.
К тому же компилятор делает дополнительные проверки. Как я недавно узнал. Проверка заключается в том, что тип данных (на который предположительно ссылаеться) проверяется, подходит ли он по контексту. А с uintege, сразу бы вылитела ошибка, что тип данных не верен.
Но вот цитатки из справочника... Мой английский не настолько крут, чтобы врубиться в чём прикол.
А разделили его от integer, на случай если будут изменения в размере. Между прочим, не integer, а uinteger, так как положительное целое.
К тому же компилятор делает дополнительные проверки. Как я недавно узнал. Проверка заключается в том, что тип данных (на который предположительно ссылаеться) проверяется, подходит ли он по контексту. А с uintege, сразу бы вылитела ошибка, что тип данных не верен.
Но вот цитатки из справочника... Мой английский не настолько крут, чтобы врубиться в чём прикол.
Re: терминология, или как что называеться по русский
На счет справочника, там про pointer написано, что ето то же самое что и ptr, а про ptr наоборот.
А в подобном коде компилятор ругнется, чтото про несоответствие типов, но скомпилит и прога работать будет нормально
А в подобном коде компилятор ругнется, чтото про несоответствие типов, но скомпилит и прога работать будет нормально
- Код:
dim as byte pVar
dim as uinteger pInt
pInt=@pVar
print pInt
sleep
FreeBasic :: Другое :: Документация
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения