(согласно отладке при компиляции для 64 бит) это большая разница.
int main( void )
{
char str[] = "Hello";
sizeof( str-1 ); //gives 8
strSize = sizeof( str ) - 1; //gives 5
}
Первый экземпляр задает размер указателя, потому что аргумент является результатом арифметики указателя, второй - размер строки, меньше единицы.
(размер ваших указателей может отличаться. :-))