int widget=1;
printf(widget==1? "%d widget": "%d widgets",widget);
这2条语句可以vs code中通过编译并运行得很好 ——有点不明白
当 我们在源程序中,如上将widget赋值为1,输出为
1 widget // 这里没有widget单词后没有s
如果修改一下源程序,将widget赋值为5,输出为
5 widgets // 这里没有widget单词后加了s
在编译的时候,widget的值并不知道,它怎么编译通过?
printf函数的第1个参数,不是应该是一个字符串吗?而wideget==1? 并不是字符串(没有引号)
也就是说prinf的第1个参数,是一个"条件表达式" 也合法吗?(不会出现语法错误?)
还是要如何理解这个printf这个参数?请教各位?
不管 widget是多少,这个表达式的最终结果 是 字符串,它就符合 printf 的第一个参数的要求
widget==1? "%d widget": "%d widgets"
这是条件语句 a?b:c 的一个简单运用, 当a为真, 则运行b否则运行c