FreeBasic
Главная
Вход
Регистрация
Четверг, 05.12.2024, 20:38Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Указатели
RoloverДата: Воскресенье, 27.10.2013, 17:25 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 45
Репутация: 0
Статус: Offline
Разбираюсь с указателями  и у меня возник вопрос

Код
Type OB
a As Integer
b As Integer
End Type


Цитата
По своей сути обе представленные ниже записи будут работать одинаково:


1)
Код
Dim ob As OB
Dim ob1 As ob Ptr


2)
Код
Dim ob1 As OB Ptr = Allocate(Sizeof(OB))


Цитата
Просто в первой записи мы определили переменную и выделили память, а потом определили указатель на эту переменную.


Так вот... мне не понятно следующее.. в первом пункте.. исходя из ниже следующей цитаты.....

после строки  Dim ob As OB

можно написать ob.a = 15

а после второй строки можно написать

? ob1->a  и как я понял должно вывести число 15 ( но выводит 0)

НО так не произойдет потому как мы создали 2 разных переменных с типом ОВ одна  простая ..вторая как указатель

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

Dim A as Integer
Dim B as A
 Pointer

НО такой пример не работает (((

А ob  и OB  разве не одно и тоже .... ведь в FB регистр не учитывается


Объяснив другому, поймешь, что понял сам.

Сообщение отредактировал Rolover - Воскресенье, 27.10.2013, 17:56
 
haavДата: Воскресенье, 27.10.2013, 20:07 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Ну да извиняюсь, я допустил ошибку в пояснении. Конечно же я забыл присвоить адрес переменной. Должно быть вот так:

Цитата
Dim ob As OB
Dim ob1 As OB Ptr =@ob


То есть мы переменной указателю присваиваем адрес на переменную ob

Что касается имен переменных, то язык позволяет присваивать переменным такое же имя как и имя структуры. А разницу в регистре я написал специально для того, чтобы читатель мог отличить где имя структуры, а где имя переменной.

Статью поправил.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
  • Страница 1 из 1
  • 1
Поиск: