请考虑以下代码:
vector<int> a = {1, 2, 3, 4, 5};
cout << a[-0] << std::endl;
Run Code Online (Sandbox Code Playgroud)
此代码将编译并打印出来1.一切都很好.我假设编译器-0改为a 0.
有趣的问题:在不使用电脑的数字系统甚至允许-0作为int了吗?
我想不出你需要的任何理由,int -0它会让代码更加混乱?
是否有任何标志(如迂腐)会对此发出警告?
背景:我在一些工作代码中发现了一些,不知道为什么,但我想确保我们将来知道它们.
你正在向后看.事实上,在编译器中编写代码是没有意义的,不要让这个程序编译,因为正如你所说的那样,表达式-0完全有效且相当于0.
你必须引入一个新的特殊情况,一元-应用于具有这个特定值的整数文字...以及为什么?
如果你正在编写令人困惑的代码,那么坦率地说这是你自己的错; 编译器没有让你这样做.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |