Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как Delphi работает со строками?


Автор: Гость_Игорь 19.5.2005, 22:10
Где можно почитать про то как Delphi работает со строками?
Хотелось бы знать теорию хотя бы в общих чертах.

Ну или может быть кто-нить на пальцах покажет?

Собственно меня волнуют такие ситуации:

1.

Код

var s1, s2 : string
s1:= 'Hello World!';
s2:= s1;


Что будет в итоге? Будет сделан еще один экземпляр
'Hello World!'или же просто s1 и s2 приравняются как указатели.

2.

Код

var s1 : array[0..255] of char;
    s2 : string


for i:= 0 to 10 do s1[i]:= #случ.значение;
s2:= s1;


Вопрос тот же - строка скопируется или приравняются тока указатели ?
Если скопируется, то под нее выделяется память??


Как работают вышеописанные примеры если s1-глобальная
s2 -локальная. И наоборот. Если обе локальные и если обе глобальные.

Заранее спасибо.


Автор: Dynamic 19.5.2005, 22:19
Вот http://dynamic.nm.ru/articles.dhtml по этому вопросу (рубрика "Структуры данных").

Автор: Medved 19.5.2005, 22:21
Дельфи работает со строками в зависмости от их типа.

Если говорить о AnsiString (начиная с Дельфи2 тип string является синонимом этого типа), то дельфи работает с ними по ссылке, т.е.
Код

var
 A,B: string;

 A := 'sdfasdfsdfasdf';
 B := A;


В данном случае переменная B хранит адрес памяти, по которому находиться строка, помещенная в переменную A (по сути переменная A тоже хранит адрес в памяти).
Но если вы будете модифицировать значение на которое указывает переменная B, то произойдет копирование строк, и перемення B будет указывать уже на другой адрес в памяти. За этот механизм отвечает сама Delphi.

Автор: Alex 19.5.2005, 22:32
http://alex-co.org/delphi/Documents/Papers/StringInDelphi.php

Автор: Medved 19.5.2005, 22:58
Цитата(Alex @ 20.5.2005, 01:32)
Строковые типы в Delphi. Особенности реализации и использования.


Рекомендую это прочитать всем, кто программирует на Дельфи.

Автор: Guest 20.5.2005, 11:06
Цитата(Alex @ 19.5.2005, 22:32)
Строковые типы в Delphi. Особенности реализации и использования.


Цитата(Dynamic @ 19.5.2005, 22:19)
Вот несколько статей по этому вопросу (рубрика "Структуры данных").



БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!
ТО ЧТО НАДО !

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)