在C語言中,布爾值參與計算時會被隱式地轉換為整數值進行計算。布爾值true被轉換為整數值1,而布爾值false被轉換為整數值0。因此,在布爾值參與計算時,實際上是在處理整數值。例如:
#include <stdio.h>
int main() {
int a = 5;
int b = 10;
_Bool bool_val = 1;
int result1 = a + bool_val;
int result2 = b * bool_val;
printf("Result1: %d\n", result1); // 輸出:6
printf("Result2: %d\n", result2); // 輸出:10
return 0;
}
在上面的例子中,bool_val為true(即1),在計算a + bool_val時,bool_val被轉換為1,得到結果6;在計算b * bool_val時,bool_val也被轉換為1,得到結果10。