Il seguente codicestringa Sizeof letterale
#include <iostream>
using namespace std;
int main()
{
const char* const foo = "f";
const char bar[] = "b";
cout << "sizeof(string literal) = " << sizeof("f") << endl;
cout << "sizeof(const char* const) = " << sizeof(foo) << endl;
cout << "sizeof(const char[]) = " << sizeof(bar) << endl;
}
uscite
sizeof(string literal) = 2
sizeof(const char* const) = 4
sizeof(const char[]) = 2
su un sistema operativo a 32 bit, compilati con GCC.
- Perché lo
sizeof
calcola la lunghezza di (lo spazio necessario per) la stringa letterale? - La stringa letterale ha un tipo diverso (da char * o char []) se assegnato a
sizeof
?
+1, ma il tipo è in realtà 'array di N const caratteri' (const non è opzionale) –
@dribeas: sì; Ignoravo le qualificazioni, ma tu sei pedanticamente corretto. –
@ JonathanLeffler ... il miglior tipo di corretto, specialmente quando si tratta di programmazione –