Ich brauche dringend hilfe!!! BITTE!!!
-
Ich habe heute eine Prüfung und ich kenne mich bei dieser Fragestellung überhaupt nich aus??? Brauche dringend hilfe!!!
Definieren und intalisieren sie einen Vektor short a[10]. Drucken Sie alle Werte einmal in der Vektorschreibweise und einmal in der Pointerschreibweise aus. Drucken Sie die Adressen aller Vektorelemente aus. Wiederholen Sie die Übung mit einer Vektor vom Type double (nurr die Adresse ausdrucken).
mfg
Sandra
-
hmm, merkwürdige Frage, mit wenig Sinn
naja, vermutlich ist folgendes gemeint
#include <stdio.h> int main() { const size_t A_SIZE=10; short a[A_SIZE]; for(size_t i=0;i<A_SIZE;++i) a[i]=i; //array wird befüllt for(size_t i=0;i<A_SIZE;++i) printf("%hd\n",a[i]); //Ausgabe in "Vektor Schreibweise" for(size_t i=0;i<A_SIZE;++i) printf("%hd\n",*(a+i)); //Ausgabe in "Pointer Schreibweise" for(size_t i=0;i<A_SIZE;++i) printf("%p\n",a+i); //Ausgabe des Pointers }
bei double musst du bei printf eben %f bei der Formatierung angeben anstelle von %hd
-
Guck mal hier, da ist ein ganzes Kapitel über Arrays in C. Dirket danach kommt ein Kapitel über Pointer, Arrays und Pointer findest du in Kapitel 15.7. Array und Zeiger
Code-Hacker
-
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