Различный вывод в C и C ++ с оператором sizeof

0

Почему этот код создает разные o/p в C и C++?

int i = sizeof('a');
  • 2
    В C ++ рассматривается как константа int, но в C ++ - как символ.
Теги:

3 ответа

3

В C тип символьной константы, такой как 'a', фактически является int, с размером 4 (или некоторым другим значением, зависящим от реализации). В C++ тип char, с размером 1. Это одна из многих небольших различий между двумя языками.

2

Символьные литералы в C являются int s, тогда как в C++ они являются char s. В любом случае sizeof(char) всегда по определению.

1

Это связано с тем, что C и C++ определяют символьные литералы по-разному. В C символьные литералы рассматриваются как int а в C++ они рассматриваются как char.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню