我有一小段关于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)
会给出四个字节的输出呢?
https://stackoverflow.com/questions/47010910
复制相似问题