Pole C (s příklady)

V tomto kurzu se naučíte pracovat s poli. Naučíte se deklarovat, inicializovat a přistupovat k prvkům pole pomocí příkladů.

Pole je proměnná, která může ukládat více hodnot. Například pokud chcete uložit 100 celých čísel, můžete pro něj vytvořit pole.

 int data(100); 

Jak deklarovat pole?

 dataType arrayName (arraySize); 

Například,

 značka plováku (5);

Zde jsme deklarovali pole, značka, typu s plovoucí desetinnou čárkou. A jeho velikost je 5. To znamená, že může obsahovat 5 hodnot s plovoucí desetinnou čárkou.

Je důležité si uvědomit, že velikost a typ pole nelze změnit, jakmile je deklarováno.

Přístup k prvkům pole

K prvkům pole můžete přistupovat pomocí indexů.

Předpokládejme, že jste deklarovali značku pole jako výše. Prvním prvkem je značka (0), druhým prvkem je značka (1) atd.

Několik klíčových poznámek :

  • Pole mají jako první index 0, nikoli 1. V tomto příkladu je prvním prvkem značka (0).
  • Pokud je velikost pole n, pro přístup k poslednímu prvku se použije n-1index. V tomto příkladu označte (4)
  • Předpokládejme, že počáteční adresa mark(0)je 2120d . Potom, adresu toho mark(1)bude 2124d . Stejně tak adresa mark(2)bude 2128d a tak dále.
    Je to proto, že velikost a floatje 4 bajty.

Jak inicializovat pole?

Je možné inicializovat pole během deklarace. Například,

 int mark(5) = (19, 10, 8, 17, 9);

Pole můžete také inicializovat takto.

 int mark() = (19, 10, 8, 17, 9);

Tady jsme neurčili velikost. Kompilátor však ví, že jeho velikost je 5, protože jej inicializujeme pomocí 5 prvků.

Tady,

 známka (0) se rovná 19 známka (1) se rovná 10 známka (2) se rovná 8 známka (3) se rovná 17 známka (4) se rovná 9

Změňte hodnotu prvků pole

 int mark(5) = (19, 10, 8, 17, 9) // make the value of the third element to -1 mark(2) = -1; // make the value of the fifth element to 0 mark(4) = 0; 

Prvky vstupního a výstupního pole

Zde je ukázka, jak můžete převzít vstup od uživatele a uložit jej do prvku pole.

 // take input and store it in the 3rd element scanf("%d", &mark(2)); // take input and store it in the ith element scanf("%d", &mark(i-1)); 

Zde je návod, jak můžete vytisknout jednotlivý prvek pole.

 // print the first element of the array printf("%d", mark(0)); // print the third element of the array printf("%d", mark(2)); // print ith element of the array printf("%d", mark(i-1)); 

Příklad 1: Vstup / výstup pole

 // Program to take 5 values from the user and store them in an array // Print the elements stored in the array #include int main() ( int values(5); printf("Enter 5 integers: "); // taking input and storing it in an array for(int i = 0; i < 5; ++i) ( scanf("%d", &values(i)); ) printf("Displaying integers: "); // printing elements of an array for(int i = 0; i < 5; ++i) ( printf("%d", values(i)); ) return 0; ) 

Výstup

 Zadejte 5 celých čísel: 1 -3 34 0 3 Zobrazení celých čísel: 1 -3 34 0 3 

Zde jsme použili forsmyčku k převzetí 5 vstupů od uživatele a jejich uložení do pole. Poté pomocí další forsmyčky se tyto prvky zobrazí na obrazovce.

Příklad 2: Vypočítat průměr

 // Program to find the average of n numbers using arrays #include int main() ( int marks(10), i, n, sum = 0, average; printf("Enter number of elements: "); scanf("%d", &n); for(i=0; i  

Output

 Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39 

Here, we have computed the average of n numbers entered by the user.

Access elements out of its bound!

Suppose you declared an array of 10 elements. Let's say,

 int testArray(10);

You can access the array elements from testArray(0) to testArray(9).

Now let's say if you try to access testArray(12). The element is not available. This may cause unexpected output (undefined behavior). Sometimes you might get an error and some other time your program may run correctly.

Hence, you should never access elements of an array outside of its bound.

Multidimensional arrays

In this tutorial, you learned about arrays. These arrays are called one-dimensional arrays.

In the next tutorial, you will learn about multidimensional arrays (array of an array).

Zajímavé články...