logo

C Pole

Pole je definováno jako kolekce podobného typu datových položek uložených v souvislých paměťových místech. Pole jsou odvozeným datovým typem v programovacím jazyce C, který může ukládat primitivní typ dat, jako je int, char, double, float atd. Má také schopnost ukládat kolekci odvozených datových typů, jako jsou ukazatele, struktura, atd. Pole je nejjednodušší datová struktura, kde lze ke každému datovému prvku přistupovat náhodně pomocí jeho indexového čísla.

Pole C je výhodné, pokud musíte ukládat podobné prvky. Chceme-li například uložit známky žáka v 6 předmětech, pak nemusíme definovat různé proměnné pro známky z různých předmětů. Místo toho můžeme definovat pole, které může ukládat známky v každém předmětu na souvislá paměťová místa.

Pomocí pole můžeme snadno přistupovat k prvkům. Pro přístup k prvkům pole je zapotřebí pouze několik řádků kódu.

Vlastnosti pole

Pole obsahuje následující vlastnosti.

  • Každý prvek pole má stejný datový typ a nese stejnou velikost, tj. int = 4 bajty.
  • Prvky pole jsou uloženy v souvislých paměťových místech, kde je první prvek uložen v nejmenším paměťovém místě.
  • K prvkům pole lze přistupovat náhodně, protože můžeme vypočítat adresu každého prvku pole s danou základní adresou a velikostí datového prvku.

Výhoda C Array

1) Optimalizace kódu : Méně kódu pro přístup k datům.

2) Snadné procházení : Pomocí cyklu for můžeme snadno získat prvky pole.

3) Snadné třídění : K seřazení prvků pole potřebujeme pouze několik řádků kódu.

4) Náhodný přístup : K libovolnému prvku můžeme přistupovat náhodně pomocí pole.

Nevýhoda C Array

1) Pevná velikost : Bez ohledu na velikost, kterou definujeme v době deklarace pole, nemůžeme překročit limit. Takže neroste velikost dynamicky jako LinkedList, což se dozvíme později.

Deklarace C Array

Pole v jazyce c můžeme deklarovat následujícím způsobem.

 data_type array_name[array_size]; 

Nyní se podívejme na příklad deklarace pole.

 int marks[5]; 

Zde je int datový typ , známky jsou název_pole a 5 je velikost_pole .

Inicializace C Array

Nejjednodušší způsob inicializace pole je pomocí indexu každého prvku. Každý prvek pole můžeme inicializovat pomocí indexu. Zvažte následující příklad.

junit testovací případy
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
inicializace pole v jazyce c

Příklad pole 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&apos;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&apos;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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

Pole C: Deklarace s inicializací

Pole c můžeme inicializovat v době deklarace. Podívejme se na kód.

 int marks[5]={20,30,40,50,60}; 

V takovém případě existuje není potřeba definovat velikost . Takže to může být také zapsáno jako následující kód.

 int marks[]={20,30,40,50,60}; 

Podívejme se na program C, který 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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

C Array Příklad: Třídění pole

V následujícím programu používáme metodu bublinového třídění k řazení pole ve vzestupném pořadí.

 #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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>