Mat*_*Mat 45
是的,在C99中,见§6.5.3.3/ 4:
逻辑否定运算符的结果!是0,如果它的操作数的值不相等的比较为0,1,如果其操作数的值进行比较等于0.结果具有类型INT.表达式!E等价于(0 == E).
所以!x并且!!y只能得到0或1,如ints.
对于其他运算符,在C99中,另请参见>,<,!,&&,||的"true"结果 或==定义?
Tim*_*Tim 15
这真的是一个评论,但它太长了.(请不要仅仅在此基础上投票.)
在寻找回答你问题的标准时,我发现了一个非常奇怪的文件:新C标准:经济和文化评论.他们说学术界资金不足.(这是完整的,2083页10.5MB PDF.前一个链接只是关于双重否定的部分.)
在双重否定的主题上有这样的说法:"双重否定通常被解释为英语中的正面陈述(例如,"在C源中出现双重否定并不是未知的.).适用的语义相同但是,在一些语言中(例如,西班牙语),双重否定被解释为使得陈述更加消极(这种用法确实发生在随意的英语演讲中,例如,"你还没有看到任何东西",但它很少见在社交上皱起眉头1)."
我相信作者会很高兴知道这在回答你的真实问题时毫无用处(答案是肯定的.)
| 归档时间: |
|
| 查看次数: |
5058 次 |
| 最近记录: |