58127-1 C-ohjelmointi - Syksy 2000 : Kertausta: Luento2
#include<stdio.h> #include<limits.h> int main(void) { unsigned long suuri = ULONG_MAX; long nega = LONG_MIN; float f = 123.456; int a[5] ={0}; /* Mitä tapahtuu jos indeksoidaan taulukon ulkopuolelle ? */ printf("Alkio %lu on %d\n",suuri,a[suuri]); a[suuri] = 5; printf("Alkio %lu on %d\n",suuri,a[suuri]); /* Mitä tapahtuu jos indeksoidaan negatiivisella indeksillä ? */ printf("Alkio %ld on %d\n",nega,a[nega]); a[nega] = 5; printf("Alkio %ld on %d\n",nega,a[nega]); /* Mitä tapahtuu jos indeksoidaan realiluvulla ? */ /* No seuraavat lauseet eivät kelpaa kääntäjälle: hyvä printf("Alkio %f on %d\n",f,a[f]); a[f] = 5; printf("Alkio %f on %d\n",f,a[f]); */ /* No entä jos käytetäänkin vakioita ? */ a[ULONG_MAX] = 5; a[LONG_MIN] = 5; /* Tämä ei kelpaa kääntäjälle: hyvä a[123.45] = 5; */ return 0; }
Jan Lindström (Jan.Lindstrom@cs.Helsinki.FI)