9. Ukazovatele a polia
9.2 Pole – zopakujme si
Pole ako údajovú štruktúru zloženú z prvkov rovnakého typu nie je potrebné zvlášť predstavovať. V jazyku C síce platia isté obmedzenia (pole vždy začína prvkom s indexom 0, medze polí sa nekontrolujú a pod.), ale vďaka úzkej súvislosti medzi poliami a pointermi (pointerová aritmetika) dokážeme s poliami „stvárať“ oveľa zaujímavejšie kúsky, ako napr. v Pascale. 🙂
Cieľom tejto časti nie je vysvetliť všetko, čo sa týka polí v jazyku C, ale predovšetkým poukázať na blízkosť pointerov a polí, pozrieť sa na pole s iného pohľadu ako sme boli doposiaľ zvyknutí (napr. z Pascalu) – z pohľadu pointerovej aritmetiky.
Vráťme sa na chvíľu k príkladu, ktorý už asi každý z vás niekedy naprogramoval. (Alebo aspoň nejaký podobný. 🙂) Zopakujeme si, čo by ste už o práci s poľom mali vedieť. Úloha znie takto: V poli, do ktorého načítame n celých čísel zo vstupu, máme vyhľadať najväčší prvok t. j. maximum.
#include <stdio.h>
#define POCET 50
void main(void)
{
int a[POCET]; /* pole 50 prvkov, indexy od 0 po 49! */
int n, i, max;
printf("pocet prvkov n = "); /* vstup */
scanf("%d\n", &n);
for (i = 0; i < n ; i++) {
printf("%d. prvok: ", i + 1);
scanf("%d", &a[i]);
}
max = a[0]; /* hľadanie maxima */
for (i = 0; i < n ; i++) {
if (a[i] > max) max = a[i];
}
printf("Maximum je %d \n", max); /* výstup */
}
|