三元运营商使用问题

Kh*_*han -3 c ternary-operator

我之前使用过三元运算符来处理类似的条件,if-else但这里它不同,即之前没有检查条件?.

  printf( "%d\n",10?0?5:11:12 );
Run Code Online (Sandbox Code Playgroud)

编辑:那么,它将如何11通过编译器进行评估,因为我在第一次之前没有看到任何条件?.

Chr*_*ung 5

表达式10 ? 0 ? 5 : 11 : 12以这种方式解析:10 ? (0 ? 5 : 11) : 12.所以这意味着在第一次测试中,由于10为真,它将进​​行评估0 ? 5 : 11,其评估为11,因为0为假.