Difference between revisions of "^/fi"

From Lazarus wiki
Jump to navigationJump to search
 
Line 2: Line 2:
 
<div style="float:right; margin: 0 25px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">^</div>
 
<div style="float:right; margin: 0 25px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">^</div>
  
[[ASCII/fi|ASCII:ssa]] merkkikoodi <syntaxhighlight lang="pascal" enclose="none">94</syntaxhighlight> desimaalisena (tai [[Hexadecimal/fi|heksadesimaalisena]] <syntaxhighlight lang="pascal" enclose="none">5E</syntaxhighlight>) on määritelty <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> (circumflex-aksentti) merkiksi.
+
[[ASCII/fi|ASCII:ssa]] merkkikoodi <syntaxhighlight lang="pascal" inline>94</syntaxhighlight> desimaalisena (tai [[Hexadecimal/fi|heksadesimaalisena]] <syntaxhighlight lang="pascal" inline>5E</syntaxhighlight>) on määritelty <syntaxhighlight lang="pascal" inline>^</syntaxhighlight> (circumflex-aksentti) merkiksi.
  
Jokaista tietotyyppiä varten voidaan osoittaa dataa [[Pointer/fi|<syntaxhighlight lang="pascal" enclose="none">osoittimen tyypillä (pointer)</syntaxhighlight> ]] operaattorin <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight> avulla  joka on [[Data type/fi|tietotyypin]] edessä.
+
Jokaista tietotyyppiä varten voidaan osoittaa dataa [[Pointer/fi|<syntaxhighlight lang="pascal" inline>osoittimen tyypillä (pointer)</syntaxhighlight> ]] operaattorin <syntaxhighlight lang="pascal" inline>^</syntaxhighlight> avulla  joka on [[Data type/fi|tietotyypin]] edessä.
  
 
<br clear="all"/>
 
<br clear="all"/>
Line 29: Line 29:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Osoitinta (<syntaxhighlight lang="pascal" enclose="none">pointer</syntaxhighlight>) voidaan seurata, jos se on liitetty lisäämällä [[Identifier/fi|tunnisteeseen]] <syntaxhighlight lang="pascal" enclose="none">^</syntaxhighlight>.  
+
Osoitinta (<syntaxhighlight lang="pascal" inline>pointer</syntaxhighlight>) voidaan seurata, jos se on liitetty lisäämällä [[Identifier/fi|tunnisteeseen]] <syntaxhighlight lang="pascal" inline>^</syntaxhighlight>.  
 
Sen sijaan, että muistin osoite olisi käsillä, niin nähdään sen osoittaman muistin sisältö. Jos kyseessä on tyypitetty osoitin (typed pointer), kyseisen tyypin toiminnot ja syntaksit ovat voimassa, esim. [[Becomes/fi|saa arvokseen]] seuraavassa esimerkissä.
 
Sen sijaan, että muistin osoite olisi käsillä, niin nähdään sen osoittaman muistin sisältö. Jos kyseessä on tyypitetty osoitin (typed pointer), kyseisen tyypin toiminnot ja syntaksit ovat voimassa, esim. [[Becomes/fi|saa arvokseen]] seuraavassa esimerkissä.
  
Line 39: Line 39:
 
end.</syntaxhighlight>
 
end.</syntaxhighlight>
  
Pyrkimys seurata [[Nil/fi|<syntaxhighlight lang="pascal" enclose="none">nil</syntaxhighlight>]] osoitinta aiheuttaa kuitenkin [[runtime error/fi|ajonaikaisen virheen]] (RTE 216 “general protection fault”).  
+
Pyrkimys seurata [[Nil/fi|<syntaxhighlight lang="pascal" inline>nil</syntaxhighlight>]] osoitinta aiheuttaa kuitenkin [[runtime error/fi|ajonaikaisen virheen]] (RTE 216 “general protection fault”).  
Tilanne on, että ehto, <syntaxhighlight lang="pascal" enclose="none">not assigned(start)</syntaxhighlight> rivillä 15, on tarkoitus saada kiinni.
+
Tilanne on, että ehto, <syntaxhighlight lang="pascal" inline>not assigned(start)</syntaxhighlight> rivillä 15, on tarkoitus saada kiinni.
  
 
== Katso myös ==
 
== Katso myös ==
* [[sPointermath|<syntaxhighlight lang="pascal" enclose="none">{$pointerMath off}</syntaxhighlight>]] ei salli osoittimien käyttöä aritmeettisissa lausekkeissa
+
* [[sPointermath|<syntaxhighlight lang="pascal" inline>{$pointerMath off}</syntaxhighlight>]] ei salli osoittimien käyttöä aritmeettisissa lausekkeissa
* [[sTypedaddress|<syntaxhighlight lang="pascal" enclose="none">{$typedAddress on}</syntaxhighlight>]] yhdessä [[@|<syntaxhighlight lang="pascal" enclose="none">@</syntaxhighlight>-osoiteoperaattorin kanssa]]
+
* [[sTypedaddress|<syntaxhighlight lang="pascal" inline>{$typedAddress on}</syntaxhighlight>]] yhdessä [[@|<syntaxhighlight lang="pascal" inline>@</syntaxhighlight>-osoiteoperaattorin kanssa]]
* [[sModeswitch|<syntaxhighlight lang="pascal" enclose="none">{$modeSwitch autoDeref-}</syntaxhighlight>]]
+
* [[sModeswitch|<syntaxhighlight lang="pascal" inline>{$modeSwitch autoDeref-}</syntaxhighlight>]]
  
 
{{Symbols}}
 
{{Symbols}}

Latest revision as of 17:11, 6 August 2022

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

^

ASCII:ssa merkkikoodi 94 desimaalisena (tai heksadesimaalisena 5E) on määritelty ^ (circumflex-aksentti) merkiksi.

Jokaista tietotyyppiä varten voidaan osoittaa dataa osoittimen tyypillä (pointer) operaattorin ^ avulla joka on tietotyypin edessä.


 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;

Osoitinta (pointer) voidaan seurata, jos se on liitetty lisäämällä tunnisteeseen ^. Sen sijaan, että muistin osoite olisi käsillä, niin nähdään sen osoittaman muistin sisältö. Jos kyseessä on tyypitetty osoitin (typed pointer), kyseisen tyypin toiminnot ja syntaksit ovat voimassa, esim. saa arvokseen seuraavassa esimerkissä.

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

Pyrkimys seurata nil osoitinta aiheuttaa kuitenkin ajonaikaisen virheen (RTE 216 “general protection fault”). Tilanne on, että ehto, not assigned(start) rivillä 15, on tarkoitus saada kiinni.

Katso myös


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)