7
为什么“ sizeof(a?true:false)”给出四个字节的输出?
我有一小段关于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; } 输出(GCC): 1 1 4 // Why 4? 但在这里, printf("%zu\n", sizeof(a ? true : false)); // Why 4? 三元运算符返回booleantype,sizeof …