„Bendir“: Munur á milli breytinga
Efni eytt Efni bætt við
SilvonenBot (spjall | framlög) m robot Breyti: sv:Datatyp#Pekare och referenstyper |
mEkkert breytingarágrip |
||
Lína 9:
== Dæmi ==
Fyrst skilgreinum við venjulega heiltölubreytu:
<source lang="c">
int breyta = 4;
</
Í [[C (forritunarmál)|C]] eru bendar táknaðar með "*" tákni framan við nafn breytunnar í skilgreiningunni:
<source lang="c">
int *pBreyta;
</
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">
pBreyta = &breyta;
</
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">
int summa = 5 + *pBreyta; // hér inniheldur summa töluna 9.
int summa2 = 5 + pBreyta; // hér á þýðandinn að gefa villu.
</
Hér er dæmi sem sýnir hvernig bendar og breytur eru sendar í föll.
<source lang="c">
// 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
</
Á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.
|