sizeof('a') 在C++里面是1,C里面是4。
C里面字符常量、enum作整数常量对待,所以是sizeof('a')大小是4。
C99标准6.6.6有说明。
int a = 'a'; sizeof(a)大小是1。
另:sizeof(x)用于对类型取大小,对表达式取大小应使用sizeof x;虽然编译器没给你报错。
"aaa"的类型是char[4],"aa"的类型是char[3],这是数组类型,数组类型作为值传递时退化为指针类型,与函数类型相似(注)。
注:void(int)是函数类型,void(*)(int)是函数指针类型,把函数作为值传递时,退化为函数指针类型。