En array definieras som en samling av liknande typer av data som lagras på angränsande minnesplatser. Arrayer är den härledda datatypen i programmeringsspråket C som kan lagra den primitiva typen av data som int, char, double, float, etc. Den har också förmågan att lagra insamlingen av härledda datatyper, såsom pekare, struktur, etc. Arrayen är den enklaste datastrukturen där varje dataelement kan nås slumpmässigt genom att använda dess indexnummer.
C array är fördelaktigt om du måste lagra liknande element. Om vi till exempel vill lagra betygen för en elev i 6 ämnen, behöver vi inte definiera olika variabler för betygen i det olika ämnet. Istället för det kan vi definiera en array som kan lagra märkena i varje ämne vid de sammanhängande minnesplatserna.
Genom att använda arrayen kan vi enkelt komma åt elementen. Endast några rader kod krävs för att komma åt elementen i arrayen.
Egenskaper för Array
Arrayen innehåller följande egenskaper.
- Varje element i en array är av samma datatyp och har samma storlek, dvs int = 4 byte.
- Element i arrayen lagras vid sammanhängande minnesplatser där det första elementet är lagrat vid den minsta minnesplatsen.
- Element i arrayen kan nås slumpmässigt eftersom vi kan beräkna adressen för varje element i arrayen med den givna basadressen och storleken på dataelementet.
Fördelen med C Array
1) Kodoptimering : Mindre kod för att komma åt data.
2) Lätt att passera : Genom att använda for-loopen kan vi enkelt hämta elementen i en array.
3) Enkel sortering : För att sortera elementen i arrayen behöver vi bara några rader kod.
4) Random Access : Vi kan komma åt alla element slumpmässigt med hjälp av arrayen.
Nackdelen med C Array
1) Fast storlek : Oavsett storlek, vi definierar vid tidpunkten för deklarationen av arrayen, kan vi inte överskrida gränsen. Så det växer inte storleken dynamiskt som LinkedList som vi kommer att lära oss senare.
Deklaration av C Array
Vi kan deklarera en array i c-språket på följande sätt.
data_type array_name[array_size];
Låt oss nu se exemplet för att deklarera arrayen.
int marks[5];
Här är int data typ , märken är array_name , och 5 är array_size .
Initialisering av C Array
Det enklaste sättet att initiera en array är att använda indexet för varje element. Vi kan initiera varje element i arrayen genom att använda indexet. Betrakta följande exempel.
gör ett sh-skript körbart
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Exempel på C-matris
#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: Deklaration med initiering
Vi kan initiera c-matrisen vid tidpunkten för deklarationen. Låt oss se koden.
int marks[5]={20,30,40,50,60};
I så fall finns det inget krav på att definiera storleken . Så det kan också skrivas som följande kod.
int marks[]={20,30,40,50,60};
Låt oss se C-programmet för att deklarera och initiera arrayen 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 Exempel: Sortering av en array
I följande program använder vi bubblesorteringsmetoden för att sortera arrayen i stigande ordning.
#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++){>