A B a legtöbb programnyelvtõl különbözik. Nincs szükség típusok deklarálására,
típusok konverziójára. A változó típusa az elõfordulása környezetébõl derül ki. Ettõl függetlenül
azonban vektor esetében tudatnunk kell, hogy a változó deklarálásakor vektor típusú változóra
gondolunk. Ezt a név után
[vektormeret
] kiírásával tehetjük meg.
Változók deklarációja
- Deklaráció
- auto def1, def2, ...; , ahol def vagy nev vagy nev [konstans] alakú.
- Ha csak egy változót akarunk deklarálni, akkor írhatjuk nev; vagy nev initvalue; formában, ahol
az initvalue a változó kezdeti értékét határozza meg.
- Külsõ változó deklaráció
Operátorok
- Egyoperandusú *, &, -, !, ++, --, ~
- Jelentésük és mûködésük a C-belivel azonos, itt nem részletezném.
- Kétoperandusú +, -, *, /, %, <<, >>, <=, <, >, >=, ==, =!, |, =*, =/, =+, =-, =<<, =>>, =<, =<=, =>, =>=, ===, =!=, =&, =^, =|
- Jelentésük és mûködésük a C-belivel azonos, itt nem részletezném.
- Háromoperandusú (ertek)?(igazag):(hamisag)
- Ez is a klasszikus C-beli formával egyezik meg.
Operátorok precedencia sorrendje, föntrõl lefelé a magasabb precedenciától az alacsonyabbig:
- ++ -- * & - ! ~ (unáris)
- * / % (bináris)
- + -
- >> <<
- > < <= >=
- == !=
- &
- |
- ?:
- = =+ =- és a többi értékadó operátor
A különbözõ matematikai és logikai mûveletek akár sorokra is tördelhetjük, csakúgy, mint C-ben,
a változó neveket azonban egybe kell írni.
Példa operátor használatára:
auto x = 20;
x =- 10 /* mint C-ben, itt is a jelentése: x = x-10; */
x = -10 /* x értéke –10 lesz */
x=-10 /* vigyázni kell a sorközökre, itt is: x=x-10 történik */
x = x << y|z /* az = precedenciája a legkisebb, így elõbb történik a balra tolás,
utána a ’vagy’ és csak a végén kerül x-be az érték */
- A ’*’ és ’&’ operátorok:
*x /* az x által mutatott érték */
&x /* az x címe
Vektorokról
egy vektor deklaráció például:
auto v[10];
ez egy 11 hosszú vektort jelent, az indexelése 0-tól 10-ig,
a harmadik elemet így érhetjük el: v[3]
Természetesen vektorok is lehetnek külsõ változók (extern kulcsszó).
Ilyenkor a deklarációban nem kell megadni a méretet.
A ’v’ név tulajdonképpen a nulladik elemre egy mutató.
Emiatt vigyázni kell ha például egy vektor tartalmát át szeretnénk másolni egy másikba:
auto v[10], u[10];
---
u = v;
ebben az esetben u-val is a v vektorra hivatkozunk, így adatveszteség lép fel.
Emiatt az v[0] helyett a *v is használható, és az i. elemet így is elérhetjük: *(v+i)
Stringek
Karakterek tömbje. Egy öt karakterbõl álló szöveg hat hosszú tömböt jelent,
mert a végén van egy plusz speciális karakter: ’*e’ ,ami a szöveg végét jelzi.
A nyelvhez tartozó könyvtár több hasznos string kezelõ mûveletet tartalmaz, pl: char(), lchar(s, n)