Programm liefert keine Ausgabe

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Programm liefert keine Ausgabe

Beitrag von nufan » Mi Jan 04, 2012 9:45 pm

DANrulz81 hat geschrieben:O.k. Danke. Aber ich lasse es lieber so, da ich da so noch besser durchsteige. So lange programmiere ich noch nicht C.
Du arbeitest lieber mit Zeigerarithmetik als mit Arrays?! Ich finde Arrays einfacher zu verstehen, aber wie du meinst ^^
Kennst du dich bereits mit Arrays aus?

DANrulz81
Beiträge: 53
Registriert: Fr Dez 23, 2011 9:40 pm

Re: Programm liefert keine Ausgabe

Beitrag von DANrulz81 » Mi Jan 04, 2012 9:50 pm

Ich finde Zeiger interessant, und versuche sie gerade, sie zu verstehen.
Kennst du dich bereits mit Arrays aus?
Kommt immer darauf an, was man "auskennen" versteht ;)

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Programm liefert keine Ausgabe

Beitrag von nufan » Mi Jan 04, 2012 10:00 pm

DANrulz81 hat geschrieben:Ich finde Zeiger interessant, und versuche sie gerade, sie zu verstehen.
Zeiger und Arrays haben einige Ähnlichkeiten und können teilweise sogar identisch verwendet werden.
DANrulz81 hat geschrieben:
Kennst du dich bereits mit Arrays aus?
Kommt immer darauf an, was man "auskennen" versteht ;)
Weißt du was ein Array ist? Wie du ihn anlegst? Auf Elemente zugreifst?

DANrulz81
Beiträge: 53
Registriert: Fr Dez 23, 2011 9:40 pm

Re: Programm liefert keine Ausgabe

Beitrag von DANrulz81 » Mi Jan 04, 2012 10:04 pm

Weißt du was ein Array ist? Wie du ihn anlegst? Auf Elemente zugreifst?
Ja das weiß ich.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Programm liefert keine Ausgabe

Beitrag von nufan » Mi Jan 04, 2012 10:07 pm

DANrulz81 hat geschrieben:
Weißt du was ein Array ist? Wie du ihn anlegst? Auf Elemente zugreifst?
Ja das weiß ich.
Wo ist dann das Problem mit meinem Code? ^^

Code: Alles auswählen

    for( i = 0; zeiger[i] != '\0'; i++ )
      printf( "\nBuchstabe %2i:\t %c", i + 1, zeiger[i] );
Sieh 'zeiger' als char-Array. Über den Index 'i' greifst du auf die einzelnen Zeichen zu. In der Schleife erhöhst du 'i', bis das aktuelle Zeichen das Endzeichen '\0' ist. Dann ist die Schleife zu ende.

DANrulz81
Beiträge: 53
Registriert: Fr Dez 23, 2011 9:40 pm

Re: Programm liefert keine Ausgabe

Beitrag von DANrulz81 » Mi Jan 04, 2012 10:19 pm

Code: Alles auswählen

Wo ist dann das Problem mit meinem Code? ^^
Das weiß ich leider auch nicht. Irgendwie hatte ich wohl einen Blackout, da ich heute den ganzen Tag C programmiert habe :lol:

Ich hab grad nochmal kurz ein Programm geschrieben, nur um nochmals Array zu testen:

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
    int array[4];
    int i=0;
    array[0]=5;
    array[1]=10;
    array[2]=15;
    array[3]=20;

        for(i=0;i<4;i++)
            printf("\nArray%i: %i\tAdresse: %p",i+1,array[i],&array[i]);

    return 0;
}
Das ist ja das Selbe, nur ohne Pointer. Oder hab ich das falsch verstanden?

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Programm liefert keine Ausgabe

Beitrag von nufan » Mi Jan 04, 2012 10:38 pm

DANrulz81 hat geschrieben:

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
    int array[4];
    int i=0;
    array[0]=5;
    array[1]=10;
    array[2]=15;
    array[3]=20;

        for(i=0;i<4;i++)
            printf("\nArray%i: %i\tAdresse: %p",i+1,array[i],&array[i]);

    return 0;
}
Das ist ja das Selbe, nur ohne Pointer. Oder hab ich das falsch verstanden?
Ja, aber recht umständlich. Du kannst den Array auch so initialisieren:

Code: Alles auswählen

int array[] = { 5, 10, 15, 20 };
char-Arrays sind ein Spezialfall, die kannst du auch so initialisieren:

Code: Alles auswählen

char buchstabe[] = "Das ist ein Test";
(Übrigens aus deinem ersten Posting in diesem Thread kopiert)
Dieser Array hat am Ende noch ein unsichtbares '\0', das das Ende des Strings markiert. Du musst also nicht mal die Größe des Arrays wissen, sondern kannst einfach auf '\0' prüfen, wie in meinem zuvor gezeigten Code:

Code: Alles auswählen

#include <stdio.h>

int main()
{
  char buchstabe[] = "Das ist ein Test";
  int i;
  for( i = 0; buchstabe[i] != '\0'; i++ )
    printf( "Buchstabe %2i:\t %c\n", i + 1, buchstabe[i] );
  return 0;
}

DANrulz81
Beiträge: 53
Registriert: Fr Dez 23, 2011 9:40 pm

Re: Programm liefert keine Ausgabe

Beitrag von DANrulz81 » Mi Jan 04, 2012 10:52 pm

Ja, genau das wollte ich machen, nur hab ich nicht dran gedacht, dass ich das Arrayelement als solches ansprechen muss. :oops:

Antworten