![]() |
|
#1
|
|||||
|
|||||
![]() Вот читал "Библию Делфи" Флёного... Там есть глава об указателях (стр.240).
Цитата:
-------------------------------------------- 1) Код:
-------------------------------------------- 2) Код:
-------------------------------------------- Спасибо заранее! ![]() Последний раз редактировалось atomAltera, 13.03.2008 в 14:24. |
#2
|
|||
|
|||
![]() Первый вариант - та самая передача строки от которой ты так стремишся избавиться.
Второй - передача адреса строки. Можно делать это без введения дополнительной переменной: Код:
Конечно, так можно. Но Этот вариант во-первых вводит нас в заблуждение. В параметрах описан указатель, а мы работем с ним как со строкой. Во-вторых. Пераметр становится параметров по ссылке вместо параметра по значению. Так лучше тогда сразу записать procedure myProc(var value: String); Будет передаваться только указатель строки. Другой вариант использовать PChar. Надеюсь, не запутал тебя своими рассуждениями и внес хлть какую-то ясность. И еще мелким шрифтом. В Delphi String м.б. как ShortString, так и AnsiString (и wide ...). Так вот ShortString передается как указано в книге. Насчет AnsiString не уверен. Нужно посмотреть в справке. В принципе, AnsiString является указателем и компилятор (по-моему мнению) может быть достаточно разумным и разделить два варианта передачи - по ссылке и по значению передавая при этом всегда только указатель. |
#3
|
||||
|
||||
![]() Спасибо AlexBlack!
|