C tömbök (példákkal)

Ebben az oktatóanyagban megtanulja a tömbökkel való munkát. Megtanulja deklarálni, inicializálni és elérni egy tömb elemeit a példák segítségével.

A tömb egy változó, amely több értéket képes tárolni. Például, ha 100 egész számot akar tárolni, létrehozhat egy tömböt hozzá.

 int data(100); 

Hogyan lehet deklarálni egy tömböt?

 dataType arrayName (arraySize); 

Például,

 úszójel (5);

Itt lebegőpontos tömböt, jelölést deklaráltunk. A mérete pedig 5. Ez azt jelenti, hogy 5 lebegőpontos értéket képes befogadni.

Fontos megjegyezni, hogy a tömb méretét és típusát a deklarálás után nem lehet megváltoztatni.

Hozzáférés a tömbelemekhez

A tömb elemeihez indexek alapján férhet hozzá.

Tegyük fel, hogy a fentiek szerint deklarált egy tömbjelet. Az első elem a jel (0), a második elem az (1) jelölés stb.

Néhány fő előadás :

  • A tömbök első indexe 0, nem 1. Ebben a példában a (0) jel az első elem.
  • Ha egy tömb mérete n, az utolsó elem eléréséhez az n-1indexet kell használni. Ebben a példában jelölje meg a (4)
  • Tegyük fel, hogy a kezdő címét mark(0)az 2120d . Ezután a mark(1)végrendelet címe 2124d lesz . Hasonlóképpen, a címe 2128dmark(2) lesz és így tovább. Ez azért van, mert az a mérete 4 bájt.
    float

Hogyan lehet inicializálni egy tömböt?

A deklaráció során lehetőség van egy tömb inicializálására. Például,

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

Inicializálhat egy ilyen tömböt is.

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

Itt nem adtuk meg a méretet. A fordító azonban tudja, hogy a mérete 5, mivel 5 elemmel inicializáljuk.

Itt,

 jel (0) egyenlő 19 jellel (1) egyenlő 10 ponttal (2) egyenlő 8 jellel (3) egyenlő 17 jellel (4) egyenlő 9

A tömb elemek értékének módosítása

 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; 

Bemeneti és kimeneti tömb elemek

Így veheti át a felhasználótól a bemenetet és tárolhatja azt egy tömb elemben.

 // 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)); 

Így nyomtathat egy tömb egyes elemeit.

 // 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)); 

1. példa: Tömb bemenet / kimenet

 // 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; ) 

Kimenet

 Írjon be 5 egész számot: 1 -3 34 0 3 Egész számok megjelenítése: 1 -3 34 0 3 

Itt egy forhurok segítségével 5 bemenetet vettünk fel a felhasználótól és tároltuk őket egy tömbben. Ezután egy másik forhurok segítségével ezek az elemek megjelennek a képernyőn.

2. példa: Számítsa ki az átlagot

 // 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).

érdekes cikkek...