Jak na věc


define:maximum

PRG. verze 1 (1, 2, 3, 5, 6 7, 9 10, 11, 12, 13, 16, 17, 18, 19, 21, 23, 24, 25)

    23 17. Vícerozměrné pole v programovacím jazyce C Pravoúhlé pole každý řádek tohoto pole má stejný počet sloupců pokud není znám počet řádků nebo počet sloupců pole v době překladu není pravoúhlé Vícerozměrné statické pole jazyk C bere dvourozměrné pole jako pole o N prvcích, kde každý prvek je pole o M prvcích v době překladu musí být znám počet řádků a sloupců int p[2][3]; // 2 řádky, 3 sloupce p==p[0]==&p[0][0]; p[0][[3]=5; // lze, uloží se do p[1][0] p p[0][0] p[0] 5 p[1][0] p[1] Dynamické pole Pole pointerů (dynamické pole) v době překladu musí být znám počet řádků p[0] p[1] int *p[2]; // 2 řádky p p[0]=(int*)malloc(sizeof(int)*3); p[1]=(int*)malloc(sizeof(int)*3); p[0][3]=5; // nelze p[1][0] free(p[0]); free(p[1]); p[0][1] 5 Pointer na pole (dynamické pole) v době překladu musí být znám počet sloupců int (*p)[3]; // 3 sloupce p p=(int(*)[])malloc(sizeof(int)*2*3); p[0] p[1] p[0][3]=5; free(p); // lze p[0][0] 5 p[1][0] Pointer na pointer (dynamické pole) v době překladu neznáme po
    21 16. Jednorozměrné pole v jazyce C Pole je strukturovaný datový typ uspořádaná množina hodnot stejného datového typu v paměti zabírá souvislý blok indexy pole začínají od 0 jméno pole je jeho adresou (adresa prvního prvku, pole = &pole[0]) Statické pole Deklarace pole #define N 10 int a[n]; // vytvoření 10-prvkového pole a a[0]=9; a[6]=-6; a[10]=100; // compiler to přeloží, ale protože neexistuje prvek s indexem 10 bude tato hodnota uložena v paměti až za polem, a ztratíme ji a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] Plnění pole int a[10]; int i; for (i=0; i<10; i++) a[i]=random(50); Vypsání pole int a[10]; int i; for (i=0; i<10; i++) printf( %dn, a[i]); Kopírování pole Třídění pole, viz. otázka 21 int a[10]; int i, j; Naplnění pole při jeho vytvoření int a[5]= ; for (i=0; i<10; i++) for (j=0; j<9; j++) if (a[j]>a[j+1]) int pom=a[j]; a[j]=a[j+1]; a[j+1]=pom; Porovnání pole x=y; // nelze; x, y jsou konstantní adresy pole x==y; // nelze for (i=0; i<10; i++) x


Copyright © Dossani milenium group 2000 - 2020
cache: 0000:00:00