# Pointer auf char Array



## Joggal (22. Mai 2015)

Hallo Leute,

Ich versuche gerade zum 10. mal, Pointer zu verstehen... 

Wie es mit int etc. abläuft weiß ich ja. Zum Beispiel: 


```
int x = 5, *ptr1, **ptr2;

	char text[] = "Hallo";

	pt1 = text;
	pt2 = &pt2;

	ptr1 = &x;
	ptr2 = &ptr1;

	printf("Wert von x: %d\n", x);
	fflush(stdout);
	printf("Adresse von x: %p\n\n", &x);
	fflush(stdout);

	printf("Wert von ptr1 (= Adresse von x): %p\n", ptr1);
	fflush(stdout);
	printf("Adresse von ptr1 selbst: %p\n", &ptr1);
	fflush(stdout);
	printf("Wert von Adresse auf die ptr1 zeigt: %d\n\n", *ptr1);
	fflush(stdout);
```

Was ich allerdings nicht verstehe ist:


```
char text[] = "Hallo";
	char *pt1, **pt2;

	pt1 = text;
	pt2 = &pt2;

	printf("Wert von text: %s\n", text);
	fflush(stdout);
	printf("Adresse von text: %p\n\n", &text);
	fflush(stdout);

	printf("Wert von pt1 (= Adresse von text): %p\n", pt1);
	fflush(stdout);
	printf("Adresse von pt1 selbst: %p\n", &pt1);
	fflush(stdout);
	printf("Wert von Adresse auf die pt1 zeigt: %s\n", (*pt1)); <<<<<<<< FEHLER
	fflush(stdout);
```

Wieso wird der Wert nicht mittels Dereferenzierungsoperator gemacht? So wie bei int? 
Kann mir hier jemand helfen, ich glaub ich habe da ein kleines Verständisproblem^^

EDIT: Und wie kann ich mittels Pointer dann einzelne Zeichen aus dem String ermitteln? z.B. nur das a aus Hallo ausgeben..

lg


----------



## Sogomn (31. Mai 2015)

Arrays sind implizit Pointer. Dementsprechend kannst du einem Pointer ein Array zuweisen.
Einzelne Zeichen kannst du genauso wie beim Array an sich ermittelln.


```
char * arrPointer = myArray;
char c = arrPointer[1];
```


----------

