array mit zeiger initialisieren
-
hallo!
bin anfänger und komm hier nicht weiter
:Aufgabe:
array mit 5 elementen mit einem zeiger initialisieren und wieder ausgeben.meine Lösung:
#include <iostream.h>
void main (void)
{
int zahlen [5];
int *p_int=&zahlen[0];for (int i=0;i<5;i++)
{
*p_int=i;
p_int=&zahlen[i] ;
}for(i=0;i<5;i++)
cout<< zahlen[i]<<endl;
cout<< zahlen[0];
}Frage 1: kann oder sollte man das so machen?
Frage 2:
Wieso wir der wert von zahlen[0]mit 1 und nicht mit 0 ausgegeben? 
dank euch jetz schon für die hilfe!!
-
Wenn du die dynamische Variante suchst:
int *p = new int[5]; for(int i=0; i<5; i++) p[i] = i; delete p;
-
Hallo
Bitte benutze:
#include <iostream> ohne .hund
int main() { return 0; }chrische
-
wenn ich das .h weg lasse, wird das hier angezeigt
:--------------------Konfiguration: zeiger - Win32 Debug--------------------
Kompilierung läuft...
zeiger.cpp
d:\programme\microsoft visual studio\common\lernen\lernen\zeiger.cpp(18) : error C2065: 'cout' : nichtdeklarierter Bezeichner
d:\programme\microsoft visual studio\common\lernen\lernen\zeiger.cpp(18) : error C2065: 'endl' : nichtdeklarierter Bezeichner
d:\programme\microsoft visual studio\common\lernen\lernen\zeiger.cpp(18) : warning C4552: '<<' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet
d:\programme\microsoft visual studio\common\lernen\lernen\zeiger.cpp(20) : warning C4552: '<<' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet
Fehler beim Ausführen von cl.exe.zeiger.obj - 2 Fehler, 2 Warnung(en)
-
Hallo
Schreib noch
using namespace std;unter die Includeanweisung. Oder du schreibst
std::coutund
std::endlchrische
-
Die Funktionen sind in dem Header in einem eigenen Namespace untergebracht. Also reicht es am Anfang, wenn du den namespace global einbindest:
#include <iostream> using namespace std;
-
zu 2.
Weil du der Position 0 eine 1 zuweist. Du erhöhst deinen Index ja erst nach der Zuweisung.
so wäre es richtignt zahlen [5]; int *p_int; for (int i=0;i<5;i++) { p_int=&zahlen[i] ; *p_int=i; }und zu 1.
Man kann es so machen, sollte es meiner Meinung nach aber nicht. Das wäre mir zu unübersichtlich.
-
dank euch - die beiträge waren alle hilfreich!

ich versteh nur noch nicht, wann man bei zeigern ein * braucht und wann nicht

int zahlen [5];
int *p_int=&zahlen[0];for (int i=0;i<5;i++)
{p_int=&zahlen[i] ;
*p_int=i+1;
}for(i=0;i<5;i++)
cout<< zahlen[i]<<endl;
-
Lies dir bitte mal diesen Beitrag in Ruhe durch. Dort ist das alles genau erklärt:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39497.html