Masyvas apibrėžiamas kaip panašaus tipo duomenų elementų, saugomų gretimose atminties vietose, rinkinys. Masyvai yra išvestiniai duomenų tipai C programavimo kalba, galintys saugoti primityvų duomenų tipą, pvz., int, char, double, float ir kt. Ji taip pat turi galimybę saugoti išvestinių duomenų tipų rinkinį, pvz., rodykles, struktūrą, tt Masyvas yra paprasčiausia duomenų struktūra, kurioje kiekvienas duomenų elementas gali būti atsitiktinai pasiekiamas naudojant jo indekso numerį.
C masyvas yra naudingas, jei turite saugoti panašius elementus. Pavyzdžiui, jei norime išsaugoti mokinio pažymius 6 dalykuose, mums nereikia apibrėžti skirtingų kintamųjų skirtingo dalyko pažymiams. Vietoj to galime apibrėžti masyvą, kuris gali saugoti kiekvieno dalyko ženklus gretimose atminties vietose.
Naudodami masyvą galime lengvai pasiekti elementus. Norint pasiekti masyvo elementus, reikia tik kelių kodo eilučių.
Masyvo savybės
Masyve yra šios savybės.
- Kiekvienas masyvo elementas yra to paties tipo duomenų ir yra tokio paties dydžio, ty int = 4 baitai.
- Masyvo elementai saugomi gretimose atminties vietose, kur pirmasis elementas saugomas mažiausioje atminties vietoje.
- Masyvo elementus galima pasiekti atsitiktine tvarka, nes galime apskaičiuoti kiekvieno masyvo elemento adresą su nurodytu baziniu adresu ir duomenų elemento dydžiu.
C masyvo privalumas
1) Kodo optimizavimas : Mažiau kodo prieigai prie duomenų.
2) Lengvas važiavimas : Naudodami for kilpą galime lengvai gauti masyvo elementus.
3) Lengvas rūšiavimas : Norėdami rūšiuoti masyvo elementus, mums reikia tik kelių kodo eilučių.
4) Atsitiktinė prieiga : Naudodami masyvą galime atsitiktinai pasiekti bet kurį elementą.
C masyvo trūkumas
1) Fiksuotas dydis : Kad ir kokį dydį apibrėžiame masyvo deklaravimo metu, ribos viršyti negalime. Taigi, jis neauga dinamiškai, kaip LinkedList, kurį sužinosime vėliau.
C masyvo deklaracija
Masyvą c kalba galime deklaruoti tokiu būdu.
data_type array_name[array_size];
Dabar pažiūrėkime masyvo deklaravimo pavyzdį.
int marks[5];
Čia, int yra duomenų tipas , ženklai yra masyvo_pavadinimas , o 5 yra masyvo_dydis .
C masyvo inicijavimas
Paprasčiausias būdas inicijuoti masyvą yra naudoti kiekvieno elemento indeksą. Kiekvieną masyvo elementą galime inicijuoti naudodami indeksą. Apsvarstykite toliau pateiktą pavyzdį.
sql serverio pivotas
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
C masyvo pavyzdys
#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'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'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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>
C Masyvas: deklaracija su inicijavimu
Mes galime inicijuoti c masyvą deklaravimo metu. Pažiūrėkime kodą.
int marks[5]={20,30,40,50,60};
Tokiu atveju yra nereikia nustatyti dydžio . Taigi jis taip pat gali būti parašytas kaip šis kodas.
int marks[]={20,30,40,50,60};
Pažiūrėkime, kaip C programa deklaruoja ir inicijuoja masyvą C.
#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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>
C Masyvo pavyzdys: Masyvo rūšiavimas
Šioje programoje mes naudojame burbulų rūšiavimo metodą, norėdami rūšiuoti masyvą didėjančia tvarka.
#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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;>
10;>5;i++){>5;i++){>