указатель против не указателя членов класса

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

Строковый литерал имеет тип «массив размера N символа», где N включает в себя конечный нуль.

Помните, что массивы не распадаются на указатели при передаче в sizeof.

10
задан hk84 21 December 2011 в 12:19
поделиться