„Bendir“: Munur á milli breytinga

Efni eytt Efni bætt við
SilvonenBot (spjall | framlög)
BiT (spjall | framlög)
mEkkert breytingarágrip
Lína 9:
== Dæmi ==
Fyrst skilgreinum við venjulega heiltölubreytu:
<source lang="c">
<pre>
int breyta = 4;
</presource>
 
Í [[C (forritunarmál)|C]] eru bendar táknaðar með "*" tákni framan við nafn breytunnar í skilgreiningunni:
<source lang="c">
<pre>
int *pBreyta;
</presource>
 
Svo gefum við bendinum gildi með því að láta hann vísa í minnishólf upphaflegu breytunnar. "&" táknið er [[einundaraðgerð]] (unary operator) sem skilar minnishólfi breytunnar sem á eftir henni fylgir.
<source lang="c">
<pre>
pBreyta = &breyta;
</presource>
 
Ef við viljum prenta út eða nota stakið í bendinum þurfum við að afvísa hann. Það er gert með því að setja "*" táknið fyrir framan breytuna.
<source lang="c">
<pre>
int summa = 5 + *pBreyta; // hér inniheldur summa töluna 9.
int summa2 = 5 + pBreyta; // hér á þýðandinn að gefa villu.
</presource>
 
Hér er dæmi sem sýnir hvernig bendar og breytur eru sendar í föll.
<source lang="c">
<pre>
// Byrjum á því að skilgreina tvær breytur
int breyta = 8;
Lína 53:
cout << breyta << endl; // hér prentast út 8
cout << *pBreyta << endl; // hér prentast út 16
</presource>
 
Ástæðan fyrir því að fyrri breytan inniheldur enn töluna 8 er sú að breytan sjálf var ekki send inní fallið heldu bara gildi hennar (þ.e. talan 8).
En þegar bendirinn sjálfur var sendur inn í fallið tekur fallið "tvofaldaMedBendli" ekki við tölunni 8 heldur staðsetningu minnishólfsins sem inniheldur töluna 8.