Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

^/ru

English · Suomi · Русский

^

В кодировках ASCII и Unicode символ с десятичным кодом 94 (или шестнадцатеричным 5E) определен как символ ^ (Circumflex accent).

Для любого типа данных тип pointer для этих данных может быть объявлен с помощью оператора ^ перед типом данных.

pascal
1program pointerDemo(input, output, stderr);
     2
     3type
     4	listItem = record
     5		payload: integer;
     6		// следующий пункт по элементу списка
     7		next: ^listItem;
     8	end;
     9
    10var
    11	start: ^listItem;
    12
    13begin
    14	new(start);
    15	if not assigned(start) then
    16	begin
    17		writeLn(stderr, 'не удалось получить память для start');
    18		halt(1);
    19	end;

Содержимое pointer можно отслеживать, разыменовывая его путем добавления [символа] ^ к идентификатору. Вместо того, чтобы имеющегося у вас на руках адреса памяти, вы сможете посмотреть на содержимое памяти по этому адресу. Если это типизированный указатель, операции и синтаксис для этого типа корректны, например, операция присвоения в следующем примере.

pascal
21	// разыменование указателя, т.е. его отслеживание 
    22	start^.payload := 7;
    23	
    24	dispose(start);
    25end.

Однако попытка отследить nil'евой указатель приведет к ошибке времени выполнения (RTE 216 “general protection fault”). В такой ситуации условиеnot assigned(start) в строке 15 предназначено для отлова [этой коллизии].

См.также

navigation bar: topic: Pascal symbols

single characters: + (плюс) • - (минус) • * (звездочка) • / (слеш) • = (равно) • > (больше чем) • < (меньше чем) • . (точка) • : (двоеточие) • ; (точка с запятой) • ^ (hat) • @ (at) • $ (dollar sign) • & (ampersand) • # (hash) • ' (single quote)

character pairs: <> (не равно) • <= (less than or equal) • := (присвоить) • >= (greater than or equal) • >< (symmetric difference) • // (double slash)


From the Free Pascal wiki, page "^/ru", as the Internet Archive kept it on 2022-08-16, last changed on 2022-08-06. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 7, последнее изменение: WikiArchive, .