Bevezetés a tömbökbe a C programozásban

A tömb egy olyan adatszerkezet, amely homogén adatok tárolására szolgál a szomszédos memóriákban.

Itt az index egy elem helyére utal a tömbben. Képzeljük el, ha A (L) a tömb neve, ahol „A” a változó neve és „L” a tömb hossza, azaz a tömbben található elemek száma.

Ezután A (i) képviseli az elemet a tömb azon „i + 1” helyzetében. Példa:

A (6) = 72 egy elemet jelent a tömb 6 + 1-es helyén.

Array igény

Segít nagy számú elem ábrázolásában egyetlen változó segítségével. Azt is megkönnyíti, hogy az elemhez való gyorsabb hozzáférés könnyen tárolható legyen a memóriahelyen, a tömb indexe alapján, amely jelzi az elem helyét a tömbben.

Elemek elérése a tömbben

A tömb bármely elemének elérése sokkal könnyebb, és O (1) komplexitásban megtehető

A tömb indexei 0-tól -1, 0-ig indítják a tömb első elemét, és -1 a tömb utolsó elemét jelzik. Hasonlóképpen, a -2 a tömb utolsó, de egy elemét jelzi.

Például:

Legyen A egy 7 hosszúságú tömb, és hozzá kell férni az 94-es értékű elemhez, akkor az A (3) -ot kell használnia.

Szintaxis

printf („% d”, A (3)) - Ez a 94 nyomtatást eredményezi, ahol 3 az index, amelyhez hozzáférnünk kell, és a a tömb változója.

C tömbnyilatkozat C

A C betűben a tömböt helyesen kell deklarálni, mielőtt a nevét és hosszát felhasználná. Három szintaxis van, amelyekben tömbök deklarálhatók az AC programban

1. szintaxis

int A (7) = (21, 56, 32, 52, 63, 12, 48) - A tömb hosszának és elemeinek deklarálása

C Program

#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Kimenet:

2. szintaxis

int A () = (21, 56, 32, 52, 63, 12, 48) - A tömb hosszának deklarálása

C Program

#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Kimenet:

3. szintaxis

int A (7); - Csak a tömb hosszának deklarálása.

C Program

#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Kimenet:

4. szintaxis

int A (7) = (0) - - A tömb és az elem hosszának deklarálása, ha az elem minden helyzetben azonos.

C Program

#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Kimenet:

5. szintaxis

A tömb hosszának megadása és az elemek értéke, ahol minden érték azonos

1. eset - int a (3) = ((0..1) = 3) -

2. eset - int a (3) = (0); -

6. szintaxis

int * a; - A tömb deklarálása az elemek helyzetére.

Nincs index a korlátozott ellenőrzéshez

Ha az elem megkísérel hozzáférni az elemhez a tömb határain kívül, akkor a fordító nem jelenít meg hibát, hanem figyelmeztetést generál. És váratlan eredményt ad.

Példa

a (4) = (2, 3, 4, 5);

Ha írunk printf (a (4));

A kimenet 225263545 lesz - Váratlan

Ezenkívül a C-ben a fordító nem hibázik egy olyan tömb inicializálásakor, amelynél több szám elem van, mint a deklarációban megadott hosszúság. Például az alábbi program nem jelenít meg hibát.

C Program

#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Kimenet:

Elemek visszakeresése a tömbben

Egy tömb elemeinek kinyerése és kinyomtatása nagyon egyszerű feladat. Csak egy hurok szükséges egy tömb n elemének kinyomtatásához. így egy ilyen program összetettsége O (n).

Például int int (7) = (23, 56, 8, 944, 58, 24, 5);

Program tömb elemeinek kinyomtatásához

C Program

#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Kimenet:

Többdimenziós tömb

A C nyelv lehetővé teszi a többdimenziós tömbök használatát is, azaz olyan tömbök, amelyek sorokban és oszlopokban is elemeket tudnak tartani.

Nyilatkozat

A többdimenziós tömb deklarálásakor meg kell határoznia az összes méret hosszát, kivéve a baloldalt, mert ez opcionális.

Példa

A tömb alábbiak szerinti deklarálása hibát fog eredményezni, mivel a baloldalon kívüli méretek nincs megadva.

Int a () () (2) = (

((1, 2), (3, 4)),

((5, 6), (7, 8))

)

Példa

Az alábbiakban látható a helyes szintaxis a többdimenziós tömb C-ben kifejezésére.

Int a () (3) = (

(52, 56, 86), (44, 6, 21)

)

Tömb átadása paraméterként a függvényben

Időnként egy függvény létrehozásakor megköveteljük, hogy a függvény számos változót használjon, amelyeket a különböző függvényekből ki kell vennie. Abban az időben ezeket a változókat paraméterként kell továbbítani arra a funkcióhívásra. De végül, amint a változók száma növekszik, tömböt kell használnunk a változó átadására, vagy abban az esetben, ha valamilyen műveletet kell végrehajtani a tömbökön, akkor egy teljes tömb átadására is szükség van, mint egy függvény paramétere. Egy tömb, mint változó átadása a függvényhez:

1. Hívás érték szerint

Az ilyen típusú hívásnál a tömb tényleges értékeit átmásolják a formális paraméterbe, ahol mindkettőt különböző helyre tárolják, így az értékek bármilyen változása nem tükröződik a függvényben.

C Program

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)

Kimenet:

2. Hívás referenciaként

Míg a függvény meghívásakor a tömb tényleges értékeinek átadása helyett paraméterként átadjuk a változóra mutató hivatkozást, akkor hívásnak referenciának nevezzük.

C Program

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)

Kimenet:

3. A teljes tömb átadása érvként

Pl. - Legyen arr egy 7 elemből álló tömb. A disztribúció egy olyan tömb elemeinek megjelenítésére szolgál, amelyek 2 argumentumot vesznek fel: az első a tömb első helyére mutat, a másik pedig a tömb hossza (var2). az arr függvény változó, amely az első tömb elemére és hosszára mutat, azaz 7, átadásra kerül.

C Program

#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)

Kimenet:

A tömb memóriaelosztása

A memória ábrázolása a C nyelven az alábbiak szerint 5 részre oszlik: -

  1. Szöveg szegmens
  2. Inicializált adat szegmens
  3. Inicializálatlan adat szegmens
  4. Kazal
  5. Halom

Az adatok, a halom és a verem a három szegmens, ahol a tömbök memóriát rendelhetnek az elemek tárolására, ugyanúgy, mint a többi változó.

  1. Dinamikus tömbök: A dinamikus tömbök olyan tömbök, amelyeknek memóriahelyet kell igénybe venniük futási időben. Az ilyen típusú tömbök számára a memóriát a halommemória helyén osztják el.
  2. Globális vagy statikus tömbök: Ezek a tömb típusok, amelyeket a fordítási időpontban osztanak el. Így az adatszegmentum-memóriát mindig hozzá kell rendelni az ilyen tömbökhez.
  3. Helyi tömbök: Azokat a tömböket, amelyek egy funkción vagy blokkon belül inicializálódnak, helyi tömböknek nevezzük. Az ilyen típusú tömbök memóriát kapnak a verem szegmensre.

Karakter tömb

A C sorozatban a karakterláncokat egydimenziós karaktersorozatnak tekintik, amelynek nulla karaktere '\ 0' az utolsó pozíciójában, amelyet a fordító automatikusan hozzáad.

Például az „imádom a kódolást” egydimenziós tömbként számolják 14-es hosszúságú c-ben, a végén '\ 0' karakterrel.

Nyilatkozat: Kétféle módon deklarálható és inicializálható a karakter tömb-

  1. char str (12) = „Szeretem a kódot”;
  2. char str (12) = ("én", "", "l", "o", "v", "e", "", "c", "o", "d", "e", " 0 ''); - Itt a végén '\ 0' karakterrel kell befejezni.
  3. Char ch (3) = 'modi' - jogellenes nyilatkozat

Bemenet és kimenet

A „% c” karakterisztika bemenetének és kimenetének megjelenítésével C-ben a scanf () és a printf () függvény használható.

Bár ugyanazt a karakterláncokat megvalósítja, a „% s” használható, de megállítja a szkennelést az első szóköz karakter előfordulásakor.

C program:

#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)

Kimenet:

A printf és a scanf függvényeken kívül a C olyan karakterláncfunkciókat is nyújt, mint például a gets () és a () helyezi, hogy figyelmen kívül hagyja a karakterlánc fehér tereit szkennelés és nyomtatás közben.

Következtetés

A tömb egy olyan adatstruktúra, amelyet a homogén adatok tárolására szomszédos memóriahelyen használnak. A tömbök a programozásban különféle összetett adatstruktúrák, például fa, halom stb. Ábrázolására szolgálnak. A C nyelv többdimenziós tömböket tesz lehetővé az összes primitív adattípus számára. A karakterláncokat karaktermátrixként is ábrázoljuk, a '\ 0' null karakter az utolsó karakter. A tömbök a programozásban lehetővé teszik a tömb elemeinek gyors visszakeresését és közvetlen elérését az index tárolására szolgáló index használatával.

Ajánlott cikkek

Ez egy útmutató a tömbökhez a C programozásban. Itt tárgyaljuk a Bevezetés, a tömb szükségleteit, valamint a tömb átadása függvényeket, amelyek tartalmazzák a hívás érték szerint, a referencia alapján történő hívást és a teljes tömb átadását argumentumként. A következő cikkeket is megnézheti további információkért -

  1. 3D tömbök C-ben
  2. Legjobb C fordító
  3. Minta a C programozásban
  4. Faktorialis C
  5. Útmutató a tömbökhez a C # -ben
  6. 3D tömbök C ++ formátumban
  7. Útmutató a tömbökhöz a PHP-ben
  8. C Programozó mátrix szorzás
  9. PHP tömb funkciók | Típusok | Példák

Kategória: