7
「sizeof(a?true:false)」が4バイトの出力を提供するのはなぜですか?
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? 三項演算子はbooleanタイプを返し、sizeof …