为什么下面的代码在C,C++中给出不同的输出?

-4 c c++

下面的代码在C中输出为1,4,4,而在C++中输出为1,1,4

#include<stdio.h> 
int main() 
{  
    char ch = 'A'; //initialise 
    //printing output
    printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));    
    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

wil*_*ilx 9

因为字符文字是intC中的类型char,但是C++中的类型.