Es gibt etwas, was ich bei C ganz und gar nicht verstehe. Man muss sich ja um die Speicherzuteilung selbst kümmern. Jetzt sind in den Buchbeispielen die Variablen zB mit int x deklariert.
Es steht erkärt, daß int, Ganzzahl bedeutet, mit einem Wertbereich von -32768 bis 32767.
Soll das jetzt bedeuten, daß wenn ich eine Eingabeaufforderung habe, und eine Zahl, die mit int deklariert wurde, nur eine Zahl zwischen diesen Werten eingeben darf, oder bedeutet das doch etwas ganz anderes ?
Von der Logik her, müsste es doch etwas anderes bedeuten, weil ich kann doch im Programm vorher nicht wissen, was ein User eingibt?
Der Speicher vom Computer ist in einzelne Speicherzellen unterteilt, besser bekannt als Bytes. Wenn Du "int x" schreibst, werden für die Variable x zwei Bytes reserviert, nicht mehr und nicht weniger. Zwei Bytes entsprechen insgesamt 16 Bits, das sind dann 2^16=65536 mögliche Werte, oder gerecht zwischen negativ und positiv aufgeteilt: -32768 bis +32767.
Das ist alles. Mehr geht nicht, weil kein Platz da ist.
Wenn Du versuchst, dieser Variable eine größere Zahl (vom Platzbedarf her) zuzuweisen, enthält diese Variable dann entweder irgendeinen Wert innerhalb des möglichen Bereichs (aber ganz bestimmt nicht die gewünschte Zahl) oder das Laufzeitsystem haut Dir diese Zahl mehr oder weniger freundlich um die Ohren ("overflow" oder "out of range").
Gruß,
soenk.e