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

简介:

这是编程里面比较恶心的一类问题,很容易被忽视,但是确很重要。

#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

相关文章
|
21天前
|
开发者 Python
Python函数参数的魔法:揭秘如何用它们施展代码的无限可能!
【8月更文挑战第22天】Python函数参数展现了语言的强大与灵活。本文涵盖位置参数、默认参数、可变参数(*args)、关键字参数(**kwargs)及参数解包等,通过实例展示如何利用这些特性增强函数复用性与扩展性。类型注解的加入进一步提升了代码的可读性和健壮性。掌握这些技巧能帮助开发者写出更高效优雅的Python代码。
36 0
|
3月前
|
C语言
C语言学习记录——矩阵转换(定义一个数组实现或定义两个数组实现)
C语言学习记录——矩阵转换(定义一个数组实现或定义两个数组实现)
24 0
|
4月前
|
C语言
【汇编语言实战】输出数组中特定元素
【汇编语言实战】输出数组中特定元素
30 0
|
4月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
86 0
|
4月前
|
存储 Java 程序员
Java数组全套深入探究——基础知识阶段3、数组下标操作
Java数组全套深入探究——基础知识阶段3、数组下标操作
45 0
|
4月前
|
JavaScript
【源码共读】将值转换为数组《arrify》
【源码共读】将值转换为数组《arrify》
41 1
|
9月前
|
TensorFlow 算法框架/工具 C语言
从头再来精学python(1) - 多重赋值
从头再来精学python(1) - 多重赋值
39 0
|
算法 C语言
C语言练级之路num4(有关各种菱形的打印)(用的都是基础的算法),会了这些图形的打印,从此再无你不会用的循环,给你理解的透透的
1.第一题(边框菱形的打印) 2.第二题边框 菱形的进阶 3.第三题(数字菱形的打印) 4.第四题:(空心菱形) 5.第五题(实心菱形): 6.第六题:(外带一个杨氏三角的再一次打印)
|
Shell
shell编程之双重循环(教你花式打印各种图形)(上)
1、双重循环概述 双重循环需要具备的前提——存在两个以上的自变量。 执行机制:
668 0
|
Shell
shell编程之双重循环(教你花式打印各种图形)(下)
1、双重循环概述 双重循环需要具备的前提——存在两个以上的自变量。 执行机制:
284 0