Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Das geht nicht, weil die Typen je nach System unterschiedlich groß sind.
€: Siehe auch hier: http://en.wikipedia.org/wiki/C_data_types#Basic_types
Teilweise sind die Größen vollständig von der Implementierung wählbar, teilweise
wird nur eine Mindestgröße vom Standard verlangt. Die Frage kann man also
nicht allgemeingültig beantworten.
Das ist irreführend bis falsch und ohne Erklärung, wie du zu den Werten gekommen bist, auch noch für OP
völlig nutzlos, was Erkenntnisgewinn angeht. Wir sind doch nicht dafür hier, den Leuten ihre Hausaufgaben
zu petzen, oder?
Ganz banal: Man könnte so lange (bei signed Datentypen) iterieren, bis irgendwann der Wert < 0 ist (bei unsigned müsste man bei 1 anfangen und irgendwann auf 0 hoffen). Auf die Anzahl der Möglichkeiten, kann man ja auf den Speicherplatz schließen. Ist natürlich hochgradiger Blödsinn, aber so könnte man es "händisch" "herausfinden". Zeiger sind hierbei natürlich dann ein weiteres Problem, Klassen und Strukturen ebenso (außer man rechnet jeden Member selbst auf).
Kurzum: sizeof ist die einzige, sichere Möglichkeit.
also wenn man so etwas programmatisch herausfinden will, warum dann nicht gleich sizeof-operator nutzen? der gehört zu c genaso dazu wie das inkrementieren von variablen.
Ich würde dem TE empfehlen sich mal die entsprechenden Kapitel im Open Book C von A bis Z durchzulesen. Dort wenden die Basisdatentypen schön erläutert und auch auf den Zusammenhang der jeweiligen Größen im Bezug auf das Betriebssystem eingegangen.
Was hilft es dem TE wenn wir ihm die Lösung vorkauen, er muss es doch selbst verstehen. Da muss man halt mal in den sauren Apfel beißen und sich mal die entsprechenden Kapitel in der Fachliteratur zu Gemüte führen.
Jetzt machts im TE nicht so schwer, also wenn du 32-bit Windows/Linux einsetzt:
float <=> 4 Byte
double <=> 8 Byte
int <=> 4 Byte
Der Rest sollte logisch sein (Arrays einfach hochmultiplizieren).
Sollte das nicht nur eine HA sein und du willst das in einem Programm einsetzten, dann schreibst du grad hochgradig fragilen, nicht portierbaren Code.
Die Lösung ist da, wie schon gesagt, sizeof.