Ich bin nicht so der C++ -Pro aber ich denke das liegt daran, dass der Char 'c' eine klassische Variable ist, also praktisch nur ein Behäter und in im ein Wert.
"c" ist entweder eine Kurzform von [ new String("c") ] (so wärs in Java) oder eine Abkürzung für [ Array[1..255] of Char ] (so wärs in Pascal).
Klar ist, dass ein Objekt "String" oder ein Array einer bestimmten Länge immer mehr Speicher verbrauchen, als ein einzelner Wert, da z.B. das Objekt noch selbstgenerierte Werte, wie z.B. die Länge mit sich rumschleppt. Warum das Array größer ist, als eine einfache Variable ist klar.
[edit]
Um das Ganze mit den Referenzen, Pointer, Werten und Objekten zu verstehen, empfehle ich dir das ganze mal in einem Buch anzuschauen, weil ganz soooo einfach ist das nicht.