Logika za sizeof () dla stałych znaków i nazw funkcji [duplikat]
To pytanie ma już tutaj odpowiedź:
Rozmiar znaku („a”) w C / C ++ 4 odpowiedziDlaczego literały znaków C są intami zamiast znaków? 12 odpowiedziWC następujący kod:
#include<stdio.h>
int main()
{
char c='a';
printf("%d %d",sizeof(c),sizeof('a'));
return 0;
}
daje wynik1
i4
? Proszę wyjaśnić logikę?
Również dlaczegosizeof(main())
skutkować w4
alesizeof(main)
prowadzi do1
:
#include<stdio.h>
int main()
{
printf("%d %d\n",sizeof(main), sizeof(main()));
return 0;
}
I wC ++ dlaczegosizeof('a')
wynik 1, ale sizeof („av”) daje 4?