En matrise er definert som samlingen av lignende type dataelementer lagret på sammenhengende minneplasseringer. Arrays er den avledede datatypen i programmeringsspråket C som kan lagre den primitive typen data som int, char, double, float, etc. Den har også muligheten til å lagre samlingen av avledede datatyper, som pekere, struktur, etc. Matrisen er den enkleste datastrukturen der hvert dataelement kan fås tilfeldig ved å bruke dets indeksnummer.
C-array er gunstig hvis du må lagre lignende elementer. For eksempel, hvis vi ønsker å lagre karakterene til en elev i 6 fag, trenger vi ikke å definere ulike variabler for karakterene i det forskjellige faget. I stedet for det kan vi definere en matrise som kan lagre merkene i hvert emne på de sammenhengende minnestedene.
Ved å bruke arrayet kan vi enkelt få tilgang til elementene. Bare noen få linjer med kode kreves for å få tilgang til elementene i matrisen.
Egenskaper til Array
Matrisen inneholder følgende egenskaper.
- Hvert element i en matrise er av samme datatype og har samme størrelse, dvs. int = 4 byte.
- Elementer i matrisen er lagret på sammenhengende minneplasseringer der det første elementet er lagret på den minste minneplasseringen.
- Elementer i arrayet kan nås tilfeldig siden vi kan beregne adressen til hvert element i arrayet med den gitte baseadressen og størrelsen på dataelementet.
Fordelen med C Array
1) Kodeoptimalisering : Mindre kode for å få tilgang til dataene.
2) Enkelt å krysse : Ved å bruke for-løkken kan vi enkelt hente elementene i en matrise.
3) Enkel sortering : For å sortere elementene i matrisen trenger vi bare noen få linjer med kode.
4) Tilfeldig tilgang : Vi kan få tilgang til ethvert element tilfeldig ved å bruke matrisen.
Ulempen med C Array
1) Fast størrelse : Uansett størrelse, vi definerer på tidspunktet for erklæringen av matrisen, kan vi ikke overskride grensen. Så det vokser ikke størrelsen dynamisk som LinkedList som vi vil lære senere.
Erklæring fra C Array
Vi kan deklarere en matrise i c-språket på følgende måte.
data_type array_name[array_size];
La oss nå se eksemplet for å erklære matrisen.
int marks[5];
Her er int data-type , merker er array_name , og 5 er array_size .
Initialisering av C Array
Den enkleste måten å initialisere en matrise på er å bruke indeksen til hvert element. Vi kan initialisere hvert element i matrisen ved å bruke indeksen. Tenk på følgende eksempel.
kamelvesken python
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
C array eksempel
#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 Array: Erklæring med initialisering
Vi kan initialisere c-matrisen på tidspunktet for erklæringen. La oss se koden.
int marks[5]={20,30,40,50,60};
I et slikt tilfelle er det ingen krav til å definere størrelsen . Så det kan også skrives som følgende kode.
int marks[]={20,30,40,50,60};
La oss se C-programmet for å deklarere og initialisere matrisen i 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 Array Eksempel: Sortering av en matrise
I det følgende programmet bruker vi boblesorteringsmetoden for å sortere matrisen i stigende rekkefølge.
#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++){>