В С ++, sizeof('a') == sizeof(char) == 1
. Это имеет интуитивный смысл, поскольку 'a'
является буквенным символом, а sizeof(char) == 1
определено стандартом.
В С, однако, sizeof('a') == sizeof(int)
. То есть, похоже, что символьные литералы C на самом деле являются целыми числами. Кто-нибудь знает почему? Я могу найти множество упоминаний об этой причуде Си, но не могу объяснить, почему она существует.