Zeiger
- 
					
					
					
					
 Hallo, hab mal ne Frage zu folgendem Code #include <iostream> using namespace std; int main() { char word[] = "Panama-Kanal", *p = word; cout << *p << endl; // P cout << *p-2 << endl; // ASCII P = 80d - 2d = 78d cout << *(p+3) << endl; // a p++; cout << *p << endl; // a (++p)++; cout << p << endl; // ama-Kanal p = word; *(p+3) = 0; cout << p << endl; // hätte hier Pan0ma-Kanal // anstatt Pan erwartet char dummy; cin >> dummy; return 0; }Es geht mir eigentlich nur um folgende Zeile: *(p+3) = 0; Hat diese Zeile die gleiche Wirkung wie *(p+3) = '\0'; falls ja könnt ihr mir dann mal erklären warum das das gleiche bewirkt. Bei dem einen wird doch der String beendet mit \0 bei dem anderen doch nicht weil das \ fehlt oder? 
 
- 
					
					
					
					
 '\0' ist das char mit dem wert 0. 
 0 ist ein int mit dem wert 0 und wird vom compiler implizit in char '\0' konvertiert.
 Kurt
 
- 
					
					
					
					
 ein string wird mit einem byte beendet das den wer 0 hat 
 also die bitfolge 00000000*(p+3) = 0; //dem byte wird 0 zugewiesen *(p+3) = '\0'; //dem byte wird 0 zugewiesen *(p+3) = '0'; //dem byte wird der ascii code der ziffer 0 zugewiesen //ka welcher das is aber definitiv nich 0