logo

C Tömb

A tömb a szomszédos memóriahelyeken tárolt hasonló típusú adatelemek gyűjteménye. A tömbök a származtatott adattípusok a C programozási nyelvben, amelyek képesek tárolni a primitív típusú adatokat, például int, char, double, float stb. Lehetősége van származtatott adattípusok gyűjteményének tárolására is, mint például mutatók, struktúra, stb. A tömb a legegyszerűbb adatstruktúra, ahol minden adatelem véletlenszerűen elérhető az indexszámával.

A C tömb előnyös, ha hasonló elemeket kell tárolnia. Például, ha egy tanuló érdemjegyeit 6 tantárgyból szeretnénk tárolni, akkor nem kell különböző változókat definiálnunk a különböző tantárgyak jegyeihez. Ehelyett definiálhatunk egy tömböt, amely a szomszédos memóriahelyeken tárolhatja az egyes alanyok jeleit.

A tömb használatával könnyen elérhetjük az elemeket. Csak néhány sornyi kód szükséges a tömb elemeinek eléréséhez.

Az Array tulajdonságai

A tömb a következő tulajdonságokat tartalmazza.

  • Egy tömb minden eleme azonos adattípusú és azonos méretű, azaz int = 4 bájt.
  • A tömb elemei egymás melletti memóriahelyeken tárolódnak, ahol az első elem a legkisebb memóriahelyen van tárolva.
  • A tömb elemei véletlenszerűen érhetők el, hiszen a megadott alapcímmel és az adatelem méretével a tömb minden elemének címét tudjuk kiszámítani.

A C Array előnyei

1) Kódoptimalizálás : Kevesebb kód az adatok eléréséhez.

2) Könnyű átjárás : A for ciklus használatával könnyen visszakereshetjük egy tömb elemeit.

3) Könnyű válogatás : A tömb elemeinek rendezéséhez csak néhány sornyi kódra van szükségünk.

4) Random Access : A tömb segítségével bármilyen elemet véletlenszerűen elérhetünk.

A C tömb hátránya

1) Fix méret : Bármilyen méretet adunk meg a tömb deklarációjakor, nem léphetjük túl a határt. Tehát nem növekszik dinamikusan a méret, mint a LinkedList, amit később megtudunk.

A C tömb nyilatkozata

Egy tömböt a következő módon deklarálhatunk c nyelven.

 data_type array_name[array_size]; 

Most lássuk a példát a tömb deklarálására.

 int marks[5]; 

Itt az int a adattípus , jelek a tömb_neve , és az 5 a array_size .

A C tömb inicializálása

A tömb inicializálásának legegyszerűbb módja az egyes elemek indexének használata. A tömb minden elemét inicializálhatjuk az index használatával. Tekintsük a következő példát.

dinamikus tömb java-ban
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
tömb inicializálása c nyelven

C tömb példa

 #include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let&apos;s see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let&apos;s see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ...
'); for(i="0;" i<10; printf('%d
',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

C Tömb: Nyilatkozat inicializálással

A c tömböt a deklaráció időpontjában inicializálhatjuk. Lássuk a kódot.

 int marks[5]={20,30,40,50,60}; 

Ilyen esetben van nincs szükség a méret meghatározására . Tehát a következő kódként is írható.

 int marks[]={20,30,40,50,60}; 

Lássuk a C programot a tömb deklarálására és inicializálására C nyelvben.

 #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d 
\',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

C Tömb Példa: Tömb rendezése

A következő programban buborékos rendezési módszert használunk a tömb növekvő sorrendbe rendezésére.

 #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>