Im C++ Standard wird festgelegt wie sich ein standardkonformer Compiler verhalten muss. Das ist sehr wichtig, da C++ plattformunabängig ist. zB kann man ein C++ Programm sowohl für Windows als auch für einen Toaster schreiben! Man muss lediglich das Programm für den Toaster neu kompilieren.
Der Standard lässt hin und wieder ein bisschen Freiraum für den Compilerhersteller, indem bestimmte Sachen als Undefined Behavior oder als Implementation Defined einstuft.
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. Nur in wenigen Ausnahmen resultiert dieses Verhalten nicht in einem Absturz des Programms. Dieses Verhalten unterscheidet sich von Plattform zu Plattform sowie von Compiler zu Compiler. Wenn man vernünftig ist, verwendet man keine Sachen die als undefiniert klassifiziert sind.
Implementation Definied ist dagegen etwas anders. Hiermit meint der Standard, dass der Compilerhersteller daraus machen kann, was er will. In den meisten Fällen also etwas sinnvolles was in keinem Absturz endet. Hier kann das Verhalten natürlich auch variieren und in den meisten Fällen kommt es zu keinem Absturz.
Den Standard gibt es zB bei www.ansi.org zu kaufen. Für weniger genaue Leute gibt es unter Anderem auf www.c-plusplus.de den Final Draft zum freien download.
Der Final Draft ist in allen wesentlichen Punkten mit dem Standard identisch. Unterschiede gibts es nur in wenigen Detailfragen. Den Final Draft gibt es auch online.
Für den Anfang wird es dir nicht viel bringen im Standard zu lesen, du kannst dir das Geld also getrost sparen. Der Standard wird erst später interessant.