Ich brauche dringend hilfe!!! BITTE!!!
-
Vielen Dank!!!
mfg
Sandra
-
kingruedi schrieb:
...
const size_t A_SIZE=10;
short a[A_SIZE];Ähh, das geht wenn überhaupt in C doch erst ab C99? ich glaube kam das C99 heute schon geprüft wird...
-
sicher dass das nicht auch in C89 erlaubt ist? Ist ja eine Konstante.
-
kingruedi schrieb:
sicher dass das nicht auch in C89 erlaubt ist? Ist ja eine Konstante.
http://www.mitp.de/imperia/md/content/vmi/0732/3.pdf
Hm, hab bis gerade gedacht, dass const kein schlüsselwort von C89 ist...
Warum bekommt man dann in Unterricht ect. immer #define BLABLA 10 beigebracht??
const int BLABLA=10; wäre doch viel sinnvoller (na gut es müßte global sein)... *am_kopf_kratz*
-
const hat mit Konstanten nichts zu tun.
(Um noch ein bißchen rumzufaseln: const besagt, das der Programmierer den Wert einer Variable über diesen Namen nicht ändern kann. Natürlich hat das nichts mit der Veränderung des Wertes allgemein zu tun.)
-
Daniel E. schrieb:
const hat mit Konstanten nichts zu tun.
(Um noch ein bißchen rumzufaseln: const besagt, das der Programmierer den Wert einer Variable über diesen Namen nicht ändern kann. Natürlich hat das nichts mit der Veränderung des Wertes allgemein zu tun.)du meinst:
const int a=100; int *b; b=&a; (*b)++; printf("%d",a); // gibt 101 aus??
geht?
(hab gerade keinen Compiler zum probieren da...)
-
Der GNU Compiler und ich denk mal ziemlich jeder Compiler bei dem optimieren eingeschaltet ist macht bei
const size_t A_SIZE=10;
ziemlich genau dasselbe wie bei
#define A_SIZE 10
abgesehen von der zusätzlichen Typenkontrolle die ja auch ganz nett ist.Anders wirds wieder wenn man A_SIZE jetzt DOCH wieder verwendet indem man das const wegcastet, dann wird A_SIZE wieder als normale Variable gespeichert.
-
xroads42 schrieb:
du meinst:
const int a=100; int *b; b=&a; (*b)++; printf("%d",a); // gibt 101 aus??
geht?
Nein, die Implementierung kann in diesem Spezialfall a in einen nichtbeschreibbaren Teil des RAM legen. Was macht übrigens der //-Operator?
In C ändert sich die Bedeutung von const nicht, wenn man es vor einen Zeiger, einen Integer oder eine volatile-Variable schreibt.
-
Was macht übrigens der //-Operator?
seit C99 gibt es ja // für Kommentare :p
-
printf("%d",a); // gibt 101 aus??
lol ist ein String. Dafür brauchst du %s
-
lol = 101
-
ups...bitte löschen