bővülő sorát

Változó hosszúságú tömbök

A S89 dimenzióban kell tömböt használó kifejezései egész konstansokat, a tömb mérete rögzített fordítási időben. Mivel bizonyos körülmények között a C99, ez a szabály megváltozott. A C99 lehet egy tömböt, amelynek méretei határozzák meg semmilyen érvényes egész kifejezések, beleértve azokat, amelyek értéke ismert csak futási időben. Az ilyen tömb nevezzük egy változó hosszúságú tömb (változó hosszúságú tömb, VLA). Azonban ezek a tömbök is csak lokális tömbök (vagyis azok, amelyeknek az hatálya - a prototípus vagy blokk). Itt látható egy példa a tömb változó hosszúságú:

Ebben az esetben, a mátrix mérete határozza meg az értékeket elhaladt az f (), és a változók Dim1 dim2. Így, ennek eredményeként a minden egyes hívás f () lehet kapcsolni a kétdimenziós különböző méretű.

Megadhat egy sor meghatározatlan méretű, változó hosszúságú, használva akkora, mint egy csillag *.

Az advent a változó hosszúságú tömbök csekély változást okozott az üzemeltető sizeof. Általánosságban elmondható, hogy sizeof - üzemeltetőnek, hogy értékeljük fordításkor. Ez azt jelenti, fordítási időben, akkor általában átfordul egy egész konstans, amelynek értéke megegyezik a méret vagy objektum típusát. Azonban, ha sizeof alkalmazni egy sor változó hosszúságú, akkor annak értéke, akkor kap csak a futás során. Ez a változás azért volt szükség, mert a méret a tömb változó hosszúságú lehet nem ismeretes futás közben.

Az egyik fő oka a megjelenése tömbök változó hosszúságú a vágy, hogy egyszerűsítse a programozás numerikus módszerek. Természetesen ez az eszköz igen széles értelemben használja. De ne felejtsd el - változó hosszúságú tömbök nem támogatja a szabványos S89 (a nyelv a C ++).

Itt garantáltan str, hogy jelezze a kezdete egy char tömb. ahol van legalább 80 elemeket.

Kapcsolódó cikkek