一直显示bool t是怎么回事?求i

问题遇到的现象和发生背景 一直显示bool t,
问题相关代码,请勿粘贴截图 #include <stdio.h>

#include <stdbool.h>
int main ()

{ bool b=7>6;
bool t=true;

bool       t=2;
printf ("%d", b);



return 0;

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

bool t=true;
bool t=2;
这两行重复声明变量了,后一行应该去掉 bool 直接 t = 2;

结果是1啊,7>6,表达式成立,由于是布尔类型,只有0和1,既然成立那就是1
如果输出t的值。也是1
如图:

img

bool类型只有两个值true和false,true是1,false是0。无论是数字或逻辑表达式在赋值给bool变量后都会被设置为true或者false,即1或0。
bool b = 7 > 6;中赋值运算符 = 的优先级低于运算符 > 的优先级,所以这里会先进行 7 > 6的运算结果为真,即为true,然后赋值给b,所以b的值为true。
你这定义了两个bool t的变量并赋值,这是错误的,不可以定义两个相同的变量,所以这里定义一个bool t即可,可以多次赋值,但无论给t赋值true还是赋值2,true和2都代表了真,所以t的值都是true。
其实bool的值只有1和0都是int类型,所以在打印时候是可以使用%d来进行打印,打印结果也是1或0。
这里打印的结果b是1,t也是1