![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AndreyANM |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.1.2006 Репутация: нет Всего: нет |
Вот у меня есть процедура (см. ниже) SrtStrok в общем она
сортирует строки в матрице, сейчас это не важно. В нее прередаются два массива. Я так понимаю, что после ключевого слова Var передаются не переменные а их указатели. Так вот в чем вопрос: Слово Var нужно писать перед каждой переменной, передаваемой по указателю, или можно написать Var всего один раз? Этот вопрос возник потому, что при таком определении процедуры:
изменяется только массив A, массив В остается без изменений A в этом случае:
все работает отлично. Может у кого есть литература по этому вопросу? Это сообщение отредактировал(а) AndreyANM - 27.1.2006, 20:18 |
||||
|
|||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
один раз Var можно если один тип и переменніе через запятую:
Var A,B:Bx Но наверное тебе это не катит -------------------- Обижено школьников: 8 |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: нет Всего: 8 |
В help-е написано, что
То есть надо писать перед каждой деларацией (в декларации могут быть разные переменные одного типа). В декларации процедуры SrtStrok надо писать var и перед A и перед B. |
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Var ведь пишется для того, чтобы процедура могла работать с этими переменными "глобально".
Достаточно один раз поставить Var, а потом перечислять переменные одного типа. Если сменился тип, то похоже снова надо писать Var. Но для нескольких переменных одного типа достаточно одного Var`a. -------------------- Всем добра |
|||
|
||||
| Guedda |
|
||||||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Если написать так:
тогда x будет передаваться ссылочно, а y - фактически. В общем, вот все, что можно:
-------------------- Ll 2 |
||||||
|
|||||||
| AndreyANM |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.1.2006 Репутация: нет Всего: нет |
Спасибо всем, я с самого начала так и понял, просто хотелось немного уточнить.
Добавлено @ 21:26 Да, кстати, я правильно думаю, что переменные после слова Var предаются с помощью указателей? |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Ну, не совсем так...
Эти переменные ссылаются на область памяти, в которой она находится. -------------------- Ll 2 |
|||
|
||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
В общем-да. Но когда ты к ним обращаешся компилятор подразумевает ^ после имени переменной, поэтому ты и получаешь не указатель, а то куда он ссылается. Благодаря этому можно удобнее вызывать API. Если на СИ функция так:
то ты можешь так:
Это сообщение отредактировал(а) bems - 27.1.2006, 22:36 -------------------- Обижено школьников: 8 |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |