您的位置:首页 > 编程语言

编程问题之:花式赋值看输出

2016-03-05 14:45 288 查看
这是编程里面比较恶心的一类问题,很容易被忽视,但是确很重要。

[code]#include <iostream>
using namespace std;

int main() 
{
    int x=2,y,z;
    x*=(y=z=5); cout<<x<<endl; //输出10,相当于x*=y;

    z=3;
    x==(y=z); cout<<x<<endl; //输出10,不论是否相等,x不被赋值(编译器会warning,==无效)

    x=(y==z); cout<<x<<endl; //输出1,相等表达式返回值1

    x=(y&z); cout<<x<<endl; //按位与,y和z都是3(0011),按位与后是0011(还是3)

    x=(y&&z); cout<<x<<endl; //直接与运算,y和z都为真,返回1

    y=4;
    x=(y|z); cout<<x<<endl; //按位或运算,0100和0011或后是0111,即7

    x=(y||z); cout<<x<<endl; //或运算,y为真,z为真,最后为真

    return 0; 
}


最后输出:

10

10

1

3

1

7

1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: