sizeof("f")
должен возвращать 2, один для «f» и один для завершения «\ 0». sizeof(foo)
возвращает 4 на 32-битной машине и 8 на 64-битная машина, потому что foo является указателем sizeof(bar)
возвращает 2, потому что bar представляет собой массив из двух символов, «b» и завершающий «\ 0». Строковый литерал имеет тип «массив размера N символа», где N включает в себя конечный нуль.
Помните, что массивы не распадаются на указатели при передаче в sizeof
.