sizeof("f")
must return 2, one for the ‘f’ and one for the terminating ‘\0’.sizeof(foo)
returns 4 on a 32-bit machine and 8 on a 64-bit machine because foo is a pointer.sizeof(bar)
returns 2 because bar is an array of two characters, the ‘b’ and the terminating ‘\0’.
The string literal has the type ‘array of size N of const char
‘ where N includes the terminal null.
Remember, arrays do not decay to pointers when passed to sizeof
.