Wpis z mikrobloga

@Sachees: konkatenacja to łączenie ze sobą wyrażeń, zwrotów, słów - stringów. W przypadku gdy chcemy połączyć stringa z innym typem to dodatkowo potrzebna jest zmiana typu na string (konwersja). Niestety w tym przypadku nie zadzieje się to automatycznie i int jest traktowany jedynie jako przesunięcie w danym stringu (napisie).
@Pierwiastek_z_Czech: Masz dwa napisy:
1. "x = " -4 znaki
2. "y = &x = " - 10 znaków

W pamięci są ułożone zapewne jeden za drugim(cout to standardowe wyjście procesu, traktowane przez system jak deskryptor pliku). Dla pierwszego cout przesuwamy się o 6 miejsc od początku pierwszego napisu czyli omijamy cały pierwszy napis i pierwsze 2 znaki drugiego więc z drugiego napisu zostaje "= &x =". Za drugim wywołaniem, rozpoczynamy
@makumbanoob: przesuwanie się w tablicy i w pamięci to to samo, dodając inta do wskaźnika, przesuwasz się w pamięci o rozmiar typu na jaki wskazuje wskaźnik, czyli dla tablicy będziesz się przesuwał po kolejnych elementach tablicy.
@Pierwiastek_z_Czech: tekst "x = " to nie std::string, tylko const char*, a po dodaniu do niego 6 wyszedłeś poza całego stringa - to jest w c++ niezdefiniowane zachowanie i mogło się stać cokolwiek, więc widok jak na konsoli jest jak zgodny z programem. W praktyce, najprawdopodobniej te dwa teksty których używasz są w pamieci jeden za drugim, więc skoro wyszedłeś poza pierwszy, to wypisał się drugi.