Bingo, Computer Graphics & Game Developer
P78 中讲到
while((char c = cin.get()) != 'q')
这里c的结果会得到一张笑脸
作者说while if switch里不能插入括号
事实上 原文作者的意思是这样的 并非不能插入括号 而是说char c这样的语句放在括号中是不行的
// error
while((char c = cin.get()) != 'q')
{
}
// correct
while(char c = cin.get() != 'q')
{
}
因为char c = ...
这里c的作用域只在括号中 所以超出了范围自动回收 并不能参与运算 正确的写法应该是
while(char c = cin.get() != 'q')
这里的!=优先级比 = 要高
所以c得到的不是cin返回的字符串 而是一个bool 所以大多数情况下回显示一个笑脸