Bumcykowy napisał(a)
Pisząc sizeof("a") pokazało mi 2 bajty. Czyli to jest wchar_t (nie trzeba było pisać L)
sizeof('a') 1 bajt (czyli char)
sizeof("aaa") 4 bajty i własnie nie wiem dlaczego aż tyle.
sizeof('aaa') tez 4 bajty. Przy czym mam warning: multi-character character constant
Sprawa wygląda tak:
'a' ma jeden bajt bo jest pojedynczym znakiem char
"aaa" ma 4 bajty bo jest traktowane jako ciąg znaków - a ciąg znaków kończy się zawsze znakiem "\0", więc kompilator Ci go "dokleił" do twoich 3 znaków - dlatego masz 4
'aaa' nie jest poprawnym ciągiem tekstowym - stąd masz warning kompilatora.
Także wszystko się zgadza - nie masz tutaj żadnego wchar_t.
Jeżeli chcesz zadeklarować ciąg znaków to używasz cudzysłowów, jeżeli pojedynczy znak to apostrofów.
PS. A i zapomniałem:
"a" ma dwa bajty bo jest traktowane jako ciąg tekstowy, który zawsze kończy się "\0", więc masz 2 znaki (twój i znacznik końca ciągu tekstowego "\0")