我有一小段关于 sizeof运算符和三元运算符的代码:
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool a = true;
printf("%zu\n", sizeof(bool)); // Ok
printf("%zu\n", sizeof(a)); // Ok
printf("%zu\n", sizeof(a ? true : false)); // Why 4?
return 0;
}
输出(海湾合作委员会) :
1
1
4 // Why 4?
但在这里,
printf("%zu\n", sizeof(a ? true : false)); // Why 4?
三元运算符返回 boolean类型,bool类型的大小是 C 中的 1字节。
然后是 为什么 sizeof(a ? true : false)的输出是四个字节?