Et array er defineret som samlingen af lignende type dataelementer, der er gemt på sammenhængende hukommelsesplaceringer. Arrays er den afledte datatype i C programmeringssprog, som kan gemme den primitive type data såsom int, char, double, float osv. Den har også mulighed for at gemme samlingen af afledte datatyper, såsom pointere, struktur, osv. Arrayet er den enkleste datastruktur, hvor hvert dataelement kan tilgås tilfældigt ved at bruge dets indeksnummer.
C-array er en fordel, hvis du skal gemme lignende elementer. For eksempel, hvis vi ønsker at gemme karaktererne for en elev i 6 fag, så behøver vi ikke at definere forskellige variabler for karaktererne i det forskellige fag. I stedet for det kan vi definere et array, som kan gemme mærkerne i hvert emne på de sammenhængende hukommelsesplaceringer.
Ved at bruge arrayet kan vi nemt få adgang til elementerne. Kun et par linjer kode er nødvendige for at få adgang til elementerne i arrayet.
Egenskaber for Array
Arrayet indeholder følgende egenskaber.
- Hvert element i et array er af samme datatype og har samme størrelse, dvs. int = 4 bytes.
- Elementer i arrayet er lagret på sammenhængende hukommelsesplaceringer, hvor det første element er lagret på den mindste hukommelsesplacering.
- Elementer i arrayet kan tilgås tilfældigt, da vi kan beregne adressen på hvert element i arrayet med den givne basisadresse og størrelsen af dataelementet.
Fordel ved C Array
1) Kodeoptimering : Mindre kode for at få adgang til dataene.
2) Nem at krydse : Ved at bruge for-løkken kan vi nemt hente elementerne i et array.
3) Nem sortering : For at sortere elementerne i arrayet behøver vi kun et par linjer kode.
4) Random Access : Vi kan få adgang til ethvert element tilfældigt ved hjælp af arrayet.
Ulempen ved C Array
1) Fast størrelse : Uanset størrelsen, vi definerer på tidspunktet for deklarationen af arrayet, kan vi ikke overskride grænsen. Så det vokser ikke størrelsen dynamisk ligesom LinkedList, som vi vil lære senere.
Erklæring af C Array
Vi kan erklære en matrix i c-sproget på følgende måde.
data_type array_name[array_size];
Lad os nu se eksemplet for at erklære arrayet.
int marks[5];
Her er int datatype , mærker er matrix_navn , og 5 er array_size .
Initialisering af C Array
Den enkleste måde at initialisere et array på er ved at bruge indekset for hvert element. Vi kan initialisere hvert element i arrayet ved at bruge indekset. Overvej følgende eksempel.
kamelhylster 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-arrayet på tidspunktet for erklæringen. Lad os se koden.
int marks[5]={20,30,40,50,60};
I et sådant tilfælde er der ingen krav om at definere størrelsen . Så det kan også skrives som følgende kode.
int marks[]={20,30,40,50,60};
Lad os se C-programmet til at erklære og initialisere arrayet 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 af et array
I det følgende program bruger vi boblesorteringsmetoden til at sortere arrayet i stigende rækkefø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++){>