C语言整数类型输出相关问题

printf("%d\n", 12?1:'a');
这个是怎么输出啊,为什么输出是1啊

12?1:'a'这个是三元表达式,12是整型为true,他会执行1,所以输出为1

三目运算 12不为0,为真,取?后第一个表达式 1,输出1

1.格式化输出一个整型的数;
2.这个数是由后面这个三目运算得到的;
3.12不为0,条件为真,取第一个表达式 1,所以结果是输出1。

12?1:'a'是三元表达式,12代表真,所以选择第一项1

img