| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как Delphi работает со строками? |
| Автор: Гость_Игорь 19.5.2005, 22:10 | ||||
| Где можно почитать про то как Delphi работает со строками? Хотелось бы знать теорию хотя бы в общих чертах. Ну или может быть кто-нить на пальцах покажет? Собственно меня волнуют такие ситуации: 1.
Что будет в итоге? Будет сделан еще один экземпляр 'Hello World!'или же просто s1 и s2 приравняются как указатели. 2.
Вопрос тот же - строка скопируется или приравняются тока указатели ? Если скопируется, то под нее выделяется память?? Как работают вышеописанные примеры если s1-глобальная s2 -локальная. И наоборот. Если обе локальные и если обе глобальные. Заранее спасибо. |
| Автор: Dynamic 19.5.2005, 22:19 |
| Вот http://dynamic.nm.ru/articles.dhtml по этому вопросу (рубрика "Структуры данных"). |
| Автор: Medved 19.5.2005, 22:21 | ||
| Дельфи работает со строками в зависмости от их типа. Если говорить о AnsiString (начиная с Дельфи2 тип string является синонимом этого типа), то дельфи работает с ними по ссылке, т.е.
В данном случае переменная 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 | ||
Рекомендую это прочитать всем, кто программирует на Дельфи. |
| Автор: Guest 20.5.2005, 11:06 | ||||
БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО! ТО ЧТО НАДО ! |