我有一小段关于 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)
的输出是四个字节?