Dlaczego tak
Typ char przechowuje pojedynczy znak jako kod liczbowy, więc w wyrażeniu c + 1 znak 'A' (kod 65) jest promowany do int i wynik to liczba 66, a nie znak 'B'. Typ string jest łańcuchem, a operator + z łańcuchem po lewej stronie oznacza konkatenację, więc s + 1 daje tekst „A1”. Aby otrzymać literę B, trzeba by jawnie rzutować wynik: (char)(c + 1).