Christian Seiler: C- verständniss der Grundlagen

Beitrag lesen

Hallo,

Dabei stieß ich auf folgendes Problem -

Variable und &Variable?

mit "&" adressiert man den speicher der variable? was soll der unterschied sein?

Der Ausdruck »variable« gibt Dir den Wert der Variable, der Ausdruck »&variable« die Speicheradresse der Variable.

Beispiel:

#include <stdio.h>  
#include <sys/types.h>  
  
int main (int argc, char **argv) {  
  int var = 3;  
  printf ("%d\n", var);  
  // Auf 64bit-Systemen %016x verwenden  
  printf ("%08x\n", &var);  
  return 0;  
}

Ergibt bei mir:

3
bfec32a0

Der Wert der Variable ist also 3 und der wird an Adresse 0xbfec32a0 gespeichert (das wird bei Dir mit Sicherheit variieren).

was wäre der unterschied zwischen

char *String[]="bla bla bla"; (was macht das "*" ? warum wird mal nach char* mal vor variablenname geschrieben?)

char *String[]="bla bla bla" ist *GANZ FALSCH*.

Entweder:

char *string = "bla bla bla";

oder

char string[] = "bla bla bla";

oder wenn Du ein Array von Strings haben willst, dann:

char *string[] = {
  "bla bla bla",
  "blub blub blub",
  ...
};

in tutorials wird zwar erklärt dass es zeiger sind, aber was heißt es "effektiv"?

Ich kann Dir, was Zeigerarithmetik angeht, wirklich nur empfehlen, Dir mal Kernighan/Ritchie, "Programmieren in C", 2. oder 3. Auflage durchzulesen. Zeiger sind nichts, was man in einem Forenposting mal eben kurz erklärt. Da steckt eine Menge Informationen dahinter und Deine Fragen zeigen, dass Du erst noch *ganz* am Anfang stehst.

Viele Grüße,
Christian