一道比较好玩的C++题目
2011-04-13 00:08
253 查看
有如下程序:
int i = 0;
if(i=0||i==0)
{
cout<<i<<endl;
}
cout<<i;
请问输出的是什么?
相信很多人第一眼看上去,或者经过深思熟虑都会觉得输出:
0
0
但事实上输出的却是:
1
1
然后我们把程序改成:
int i = 0;
if(i=0||i==1)
{
cout<<i<<endl;
}
cout<<i;
这回只输出一个0。
这样就明白了吧,||的优先级高于赋值=运算符,所以if(i=0||i==1)等价于if(i=(0||i==1)),i被赋值为1了。
在java中不会出现这样的情况,因为java根本不允许赋值结构作为if语句参数类型。
int i = 0;
if(i=0||i==0)
{
cout<<i<<endl;
}
cout<<i;
请问输出的是什么?
相信很多人第一眼看上去,或者经过深思熟虑都会觉得输出:
0
0
但事实上输出的却是:
1
1
然后我们把程序改成:
int i = 0;
if(i=0||i==1)
{
cout<<i<<endl;
}
cout<<i;
这回只输出一个0。
这样就明白了吧,||的优先级高于赋值=运算符,所以if(i=0||i==1)等价于if(i=(0||i==1)),i被赋值为1了。
在java中不会出现这样的情况,因为java根本不允许赋值结构作为if语句参数类型。
相关文章推荐
- Codeforces 448C:Painting Fence 刷栅栏 超级好玩的一道题目
- 一道有意思的C++题目
- zoj 1115题比较简单的一道题目。
- E(HDu3037Lucas比较综合的一道数论题目)
- C/C++一道题目的答案-函数指针与指针函数
- 请教一道C++题目
- 一道C++考试题目
- 关于C++队列操作(并附上一道Boring题目)
- C++中按值调用中的几个比较好玩的问题
- 一道 C++面试题目
- 【C语言/C++】算术移位和逻辑移位以及一道移位的题目
- 请教一道C++题目
- 【C++】一道考察重载、覆盖、多态的题目
- 杭电OJ——1025 Constructing Roads In JGShining's Kingdom(比较有趣的一道题目,思路详解)
- 【C语言/C++】算术移位和逻辑移位以及一道移位的题目
- 分享一个c++ 加密算法 ,在百度贴吧找的,比较好玩
- 一道考察类的纯虚函数定义,静态变量等C++题目
- 关于C++临时对象的一道题目
- 一道蛮好玩的题目——某顶尖游戏公司程序员笔试第一题(摔xbox)
- 青年歌手大奖赛_评委会打分 (一道比较简单的题目)