我写了一个小的 printf 语句,它在 C 和 C++ 中的工作方式不同:
int i;
printf ("%d %d %d %d %d \n", sizeof(i), sizeof('A'), sizeof(sizeof('A')), sizeof(float), sizeof(3.14));
上述程序在 c 中使用 gcc 编译器的输出是 4 4 8 4 8
上述程序在 c++ 中使用 g++ 编译器的输出是 4 1 8 4 8
我预计 4 1 4 4 8 在 c。但结果并非如此。
printf sizeof(sizeof('A')) 中的第三个参数是 8
谁能给我这个的理由