ho scritto un piccolo printf che sta lavorando diverso in C e C++:fa il lavoro di operatore sizeof diverso in C andd C++
int i;
printf ("%d %d %d %d %d \n", sizeof(i), sizeof('A'), sizeof(sizeof('A')), sizeof(float), sizeof(3.14));
L'uscita per il programma di cui sopra in C usando il compilatore gcc è 4 4 8 4 8
l'uscita del suddetto programma in C++ utilizzando compilatore g ++ è 4 1 8 4 8
I prevede 4 1 4 4 8 in c. Ma il risultato non è così.
Il terzo parametro nel sizeof printf (sizeof ('A')) sta dando 8
Qualcuno mi può dare la motivazione per questo
vs2012: '' 4 1 4 4 8''. – gongzhitaao