Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как Delphi работает со строками? ПО ссылке или по значению ? 
:(
    Опции темы
Гость_Игорь
Дата 19.5.2005, 22:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Где можно почитать про то как 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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



Вот несколько статей по этому вопросу (рубрика "Структуры данных").


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Medved
Дата 19.5.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Дельфи работает со строками в зависмости от их типа.

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

var
 A,B: string;

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


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


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Alex
Дата 19.5.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162





--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Medved
Дата 19.5.2005, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



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


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


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 20.5.2005, 11:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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


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



БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!
ТО ЧТО НАДО !
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.