Difference between revisions of "^"

From Lazarus wiki
Jump to navigationJump to search
m (syntaxhighlight fix)
m (a couple more links)
Line 4: Line 4:
 
In [[ASCII]] the character code decimal <syntaxhighlight lang="pascal" enclose="none">94</syntaxhighlight> (or [[Hexadecimal|hexadecimal]] <syntaxhighlight lang="pascal" enclose="none">5E</syntaxhighlight>) is defined to be  <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> (circumflex accent).
 
In [[ASCII]] the character code decimal <syntaxhighlight lang="pascal" enclose="none">94</syntaxhighlight> (or [[Hexadecimal|hexadecimal]] <syntaxhighlight lang="pascal" enclose="none">5E</syntaxhighlight>) is defined to be  <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> (circumflex accent).
  
For any data type, a [[Pointer|<syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight> type]] for that data can be declared using the operator <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> in front of the data type.
+
For any data type, a [[Pointer|<syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight> type]] for that data can be declared using the operator <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> in front of the [[Data type|data type]].
  
 
<syntaxhighlight lang="pascal" line highlight="6-7,11">
 
<syntaxhighlight lang="pascal" line highlight="6-7,11">
Line 28: Line 28:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
A <syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight> can be ''followed'' by appending a <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> to the identifier.
+
A <syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight> can be ''followed'' by appending a <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> to the [[Identifier|identifier]].
 
Instead of having the memory address in your hands, you will look at the memory content ''at'' that address.
 
Instead of having the memory address in your hands, you will look at the memory content ''at'' that address.
 
If it is a typed <syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight>, operations and syntax for that type are valid, e.g. [[Becomes|assignment]] in the following example.
 
If it is a typed <syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight>, operations and syntax for that type are valid, e.g. [[Becomes|assignment]] in the following example.

Revision as of 00:02, 5 April 2018

English (en) suomi (fi) русский (ru)

^

In ASCII the character code decimal 94 (or hexadecimal 5E) is defined to be ^ (circumflex accent).

For any data type, a pointer type for that data can be declared using the operator ^ in front of the data type.

 1program pointerDemo(input, output, stderr);
 2
 3type
 4	listItem = record
 5		payload: integer;
 6		// next _points_ _to_ a list item
 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, 'obtaining memory for start failed');
18		halt(1);
19	end;

A pointer can be followed by appending a ^ to the identifier. Instead of having the memory address in your hands, you will look at the memory content at that address. If it is a typed pointer, operations and syntax for that type are valid, e.g. assignment in the following example.

21	// _de-reference_ the pointer, i.e. follow it
22	start^.payload := 7;
23	
24	dispose(start);
25end.

see also


navigation bar: topic: Pascal symbols
single characters

+ (plus)  •  - (minus)  •  * (asterisk)  •  / (slash)
= (equal)  •  > (greater than)  •  < (less than)
. (period)  •  : (colon)  •  ; (semi colon)
^ (hat)  •  @ (at)
$ (dollar sign)  •  & (ampersand)  •  # (hash)
' (single quote)

character pairs

<> (not equal)  •  <= (less than or equal)  •  := (becomes)  •  >= (greater than or equal)

 •  >< (symmetric difference)  •  // (double slash)