Pole je definované ako zbierka podobného typu dátových položiek uložených v súvislých pamäťových miestach. Polia sú odvodený dátový typ v programovacom jazyku C, ktorý dokáže ukladať primitívne typy dát, ako sú int, char, double, float atď. Má tiež schopnosť ukladať kolekciu odvodených dátových typov, ako sú ukazovatele, štruktúra, atď. Pole je najjednoduchšia dátová štruktúra, kde je možné pristupovať ku každému dátovému prvku náhodne pomocou jeho indexového čísla.
Pole C je výhodné, ak musíte ukladať podobné prvky. Napríklad, ak chceme uložiť známky študenta zo 6 predmetov, potom nemusíme definovať rôzne premenné pre známky z rôznych predmetov. Namiesto toho môžeme definovať pole, ktoré môže ukladať známky v každom predmete na priľahlé pamäťové miesta.
Pomocou poľa môžeme ľahko pristupovať k prvkom. Na prístup k prvkom poľa je potrebných iba niekoľko riadkov kódu.
Vlastnosti poľa
Pole obsahuje nasledujúce vlastnosti.
- Každý prvok poľa má rovnaký dátový typ a nesie rovnakú veľkosť, t.j. int = 4 bajty.
- Prvky poľa sú uložené na súvislých pamäťových miestach, kde je prvý prvok uložený na najmenšom pamäťovom mieste.
- K prvkom poľa možno pristupovať náhodne, pretože môžeme vypočítať adresu každého prvku poľa s danou základnou adresou a veľkosťou dátového prvku.
Výhoda C Array
1) Optimalizácia kódu : Menej kódu na prístup k údajom.
2) Jednoduché prechádzanie : Pomocou cyklu for môžeme ľahko získať prvky poľa.
3) Jednoduché triedenie : Na zoradenie prvkov poľa potrebujeme iba niekoľko riadkov kódu.
4) Náhodný prístup : K akémukoľvek prvku môžeme pristupovať náhodne pomocou poľa.
Nevýhoda C Array
1) Pevná veľkosť : Bez ohľadu na veľkosť, ktorú definujeme v čase deklarácie poľa, nemôžeme prekročiť limit. Veľkosť sa teda nezväčšuje dynamicky ako LinkedList, o ktorom sa dozvieme neskôr.
Vyhlásenie C Array
Pole môžeme deklarovať v jazyku c nasledujúcim spôsobom.
data_type array_name[array_size];
Teraz sa pozrime na príklad na deklarovanie poľa.
int marks[5];
Tu je int Dátový typ , známky sú názov_poľa a 5 je veľkosť_poľa .
Inicializácia C Array
Najjednoduchším spôsobom inicializácie poľa je použitie indexu každého prvku. Každý prvok poľa môžeme inicializovať pomocou indexu. Zvážte nasledujúci príklad.
stránky java servera
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Príklad poľa C
#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++){>
Pole C: Deklarácia s inicializáciou
Pole c môžeme inicializovať v čase deklarácie. Pozrime sa na kód.
int marks[5]={20,30,40,50,60};
V takom prípade existuje nie je potrebné definovať veľkosť . Môže byť teda napísaný aj ako nasledujúci kód.
int marks[]={20,30,40,50,60};
Pozrime sa, ako program C deklaruje a inicializuje pole v 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++){>
Príklad poľa C: Triedenie poľa
V nasledujúcom programe používame metódu bublinového triedenia na triedenie poľa vo vzostupnom poradí.
#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++){>