Lógica por trás de sizeof () para constantes de caracteres e nomes de funções [duplicado]
Esta questão já tem uma resposta aqui:
Tamanho do caractere ('a') em C / C ++ 4 respostasPor que os literais de caracteres C são ints em vez de chars? 12 respostasEmC o seguinte código:
#include<stdio.h>
int main()
{
char c='a';
printf("%d %d",sizeof(c),sizeof('a'));
return 0;
}
produz o resultado1
e4
? Por favor, explique a lógica?
Além disso, por quesizeof(main())
resulta em4
massizeof(main)
resulta em1
:
#include<stdio.h>
int main()
{
printf("%d %d\n",sizeof(main), sizeof(main()));
return 0;
}
E emC ++ porquesizeof('a')
resultam em 1 mas o tamanho de ('av') resulta em 4?