如何将逻辑运算符直接使用到用户定义的变量中
how to use logical operator directly into the user defined variables
#include <iostream>
using namespace std;
int main() {
// your code goes here
int x=1;
int y;
y=x&&10;
cout<<y;
return 0;
}
输出为 1
。
该值如何存储在y
中?&&
的操作是什么?请解释一下。
此操作
y=x&&10;
评估为:
x && 10
1 (int) && 10 (int)
true && true // Note any non-zero integer will be evaluated to true
true
因此
y = true
但是y
是一个int
,所以有一个从bool
到int
的隐式转换,这导致y
被1
。
如果你写"a && b",那么变量a和b都必须等于true,表达式的结果返回true,否则结果为false。
对于整数,所有不为零的值都被视为 true。两个变量都不为零,因此表达式返回 true。
当布尔值存储到整数中时,true 表示为 1,而 false 表示为零。
这就是应用程序输出 1 的原因。
y=0 仅当您输入 0 而不是 10 或将 0 分配给 x 时。
如果左操作数和右操作数的值都是非零 y=1,因为两者都表示 true。
如果其中一个操作数为 0,则 y=0,因为 0 表示假。
相关文章:
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- Visual C++(VS2017)中用户定义的转换不明确
- 使用用户定义的参数调用future/async并调用类方法
- 带有用户定义类的c++折叠表达式
- g++用户定义的动态链接库上的全局new和delete运算符
- 直接在 unordered_map 的方法中使用哈希,而不是生成哈希的用户定义对象
- 修改"std::set"中用户定义类型的值
- 参数包构造函数在类模板中隐藏用户定义的转换
- MAKE:找不到包含的用户定义的头文件?
- C++:用户定义的显式类型转换函数错误
- 从用户定义的类生成格式字符串?
- 为用户定义的类正确调用复制构造函数/赋值运算符
- C++ 向量与用户定义的类比较?(==, <, >)
- STL 用户定义的二进制操作
- 将用户定义的类型与 std::vector 和 std::sort 一起使用
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 使用宏编译时使用用户定义的数学函数,或者仅使用 c++ 中标准数学库中的函数
- C++:用户定义的类,以成员字段作为地址