kategória | ||||||||||
|
||||||||||
|
||
Változók, konstansok, szimbolikus konstansok a C programnyelvben. Skalárok és tömbök definiálása, deklarálása. A kezdeti értékadás skalár és tömb esetén.
Változók inicializálása
A változó definiálásakor megadhatunk egy konstans értéket, például :
int i=0;
float f=67.25;
Az értékadást az '=' jellel hajtjuk vé 757f51h gre és minden utasítást a ';' zár le! A
változó inicializálás és a konstans definiálás között az alapvetô különbség
az, hogy inicializálás esetén a változó értéke módosítható, konstans
definíció esetén pedig nem !
Konstansok definiálása
A konstansok definiálása a main() elôtt történik
a következô alakban:
#define <KONSTANS NEVE> <konstans értéke>
pld.:#define MAXELEM 1000
vagy : #define PI 3.1415
MAXELEM és PI úgynevezett szimbolikus állandók, melyeket nagybetűvel szokás
írni. Az állandókat egy úgynevezett elôfordító a fordításkor behelyettesíti a programba. A konstans definíciók után
tilos pontosvesszôt tenni, ugyanis az elôfordító nemcsak a konstans értékét,
hanem a pontosvesszôt is behelyettesítené a hivatkozás helyére. A szimbolikus
állandók használata egyrészt áttekinthetôbbé teszi a programot, másrészt,
ha a konstans értéke megváltozik, akkor a módosítást csak egyszer kell
végrehajtani. Példa a szimbolikus állandó használatára :
ker = 2*r*PI ; /* A kör kerülete */ vagy : x = MAXELEM - 100 ;
Megjegyzés : A BORLAND C++ 2.0 fordító
lehetôséget nyújt arra, hogy másképpen is tudjunk konstansokat definálni. Ez
a lehetôség a const kulcsszó, melynek használata a következô :const
[<típus>] <konstans név> = <kezdôérték>;
Például : const int i=123; vagy const float f =123.4;
A konstans típusát áttekinthetôségi okokból is célszerű jelezni. A két konstans definálási lehetôség megegyezik abban, hogy egy definiált konstansnak már nem adhatunk új értéket a program futása során. A különbség pedig abban áll, hogy a const a BORLAND C++ fordító egyik kulcsszava és az általa definiált konstans neve és értéke része lesz a fordítás során keletkezô tárgykódnak. Ezzel ellentétben a #define direktíva a fordító elôfeldolgozó részére bír csak jelentéssel, ugyanis az általa definiált konstans nevével a C fordító már nem találkozik, hanem csak az értékével. Ilymódon a tárgykódban a konstans neve nem szerepel, hanem csak az értéke.
Tömbök
Eddig olyan esetekkel foglalkoztunk, ahol egy változónévhez egy értéket tudtunk hozzárendelni. ( Skalár változó ). A tömb azonos típusú, véges számú elembőlépül fel. Olyan közvetlen elérésű adatstruktúra, amelynek egy elemét a tömb nevével és az utána következô indexszel tudjuk elérni - alapesetben.
A tömbnek öt jellemzôje van : - Tárolási
osztály specifikátor - Típus - Név - Méret - Dimenzió
Típus :Az eddig megismert változó típusok valamelyike lehet.
Név : A
tömb nevének megválasztásával kapcsolatban a 2.2 pontban leírtak érvényesek.
Méret : A tömb definícíónál a tömb típusa után a nevét adjuk meg és utána az elemek számát - "[" ill. "]" között. C
-ben a tömb indexelése szigorúan a 0 - dik elemtôl kezdôdik. Indexelésnek
nevezzük azt a műveletet, amikor a tömb neve után "[" és
"]" között direkt módon - egy számmal - megadjuk, hogy az illetô tömb
hányadik elemét kívánjuk elérni.Igy például, az : int elemek[10] ; módon
definiált tömbnek 10 eleme van : elemek[0] , elemek[1], . . . , elemek[9] ; de nincs 10-es indexü eleme.
Példa az indexelésre : elemek[3] = 20; vagy : for(i=0; i<10; i++) elemek[i] = 0;
Dimenzió :Az elôbb bemutatott egydimenziós tömbön kívül kétdimenziós tömböt is használhatunk. Az egydimenziós tömböt a matematikában megismert egy dimen-ziós vektorhoz hasonlíthatjuk, a kétdimenziós tömböt pedig a mátrixhoz.
Ezekután az egydimenziós tömb definiálása úgy történik, hogy megadjuk a típusát, ezután - egy vagy több szóközt követôen - a nevét, majd szögletes zárójelek között, az elemek számát. A deklarálást követheti - kapcsos zárójelek között - a tömb elemeinek felsorolása, vesszôvel elválasztva. Ezt nevezzük a tömb inicializálásának ! Amennyiben a felsorolt elemek száma kevesebb a tömb méreténél, úgy a maradék elemek értéke nulla lesz !
Példa : int vv[10] ; // Egy integer típusú, vv nevű, 10 elemű tömb.
vagy : int
zz[10] = ;
// Egy integer típusú, zz nevű, 10 elemű tömb, inicializálással.
A példákban szereplô deklarációk egyben definíciók is, mert a tömbméretnek
megfelelô memóriaterület lefoglalódik !
Találat: 2075