小弟我发现一个很神奇的事情,关于用char得到真假判断并输出
我发现一个很神奇的事情,关于用char得到真假判断并输出
作为新手一路看书,看到关系运算符,书上竟然用 k=(i>j); (前面有int k),我试了一下可以输出结果,然后去问朋友A说是否bool变量一般省略bool声明?他否定了我,说原理不一样,变量是要占内存的。接着我另一个朋友B说让我试一下char就不一样了。然后我第一个测试的是 char a=(b<c); (其中b<c为假,根据我附图可看出是无输出的,或者输出的是空格?)。 于是我屁颠屁颠去跟A说,用char就没了啊。A说也有,字符是值,值不是字符。于是我又测试了 char a=(b>c); 和 char a=(b>c); 发现一个是空心笑脸,一个是实心笑脸。不明觉厉啊,于是很无聊做了这个测试- -。
代码如下:
测试结果:使用char声明数据类型输出关系运算的真假时,
1、当用 < 关系运算符时,真输出空心笑脸,假无输出(还是输出空格?求指教下);
2、当用 > 关系运算符时,真输出空心笑脸,假无输出;
3、当用 = 关系运算符时,真无数,假输出实心笑脸。
另外,布尔变量推荐使用格式bool a = (b > c),不推荐直接赋值。(昂,因为我看书也有看到用double定义,也有赋值的,然后问了下朋友,于是得到如是回答)
------解决方案--------------------
++
------解决方案--------------------
这是赋值运算符啊
------解决方案--------------------
是不是反了
------解决方案--------------------
反了
作为新手一路看书,看到关系运算符,书上竟然用 k=(i>j); (前面有int k),我试了一下可以输出结果,然后去问朋友A说是否bool变量一般省略bool声明?他否定了我,说原理不一样,变量是要占内存的。接着我另一个朋友B说让我试一下char就不一样了。然后我第一个测试的是 char a=(b<c); (其中b<c为假,根据我附图可看出是无输出的,或者输出的是空格?)。 于是我屁颠屁颠去跟A说,用char就没了啊。A说也有,字符是值,值不是字符。于是我又测试了 char a=(b>c); 和 char a=(b>c); 发现一个是空心笑脸,一个是实心笑脸。不明觉厉啊,于是很无聊做了这个测试- -。
代码如下:
#include<iostream>
using namespace std;
void main()
{
int i = 1,j = 2,k = 2,l = 3;
char m1,n1,o1,m2,n2,o2,m3,n3,o3;
m1 = (i < j);
n1 = (i > j);
o1 = (i = j);
m2 = (j < k);
n2 = (j > k);
o2 = (j = k);
m3 = (l < k);
n3 = (l > k);
o3 = (l = k);
cout << "1" << m1 << "\t";
cout << m2 << "\t";
cout << m3 << endl;
cout << "2" << n1 << "\t";
cout << n2 << "\t";
cout << n3 << endl;
cout << "3" << o1 << "\t";
cout << n2 << "\t";
cout << o3 << endl;
}
测试结果:使用char声明数据类型输出关系运算的真假时,
1、当用 < 关系运算符时,真输出空心笑脸,假无输出(还是输出空格?求指教下);
2、当用 > 关系运算符时,真输出空心笑脸,假无输出;
3、当用 = 关系运算符时,真无数,假输出实心笑脸。
另外,布尔变量推荐使用格式bool a = (b > c),不推荐直接赋值。(昂,因为我看书也有看到用double定义,也有赋值的,然后问了下朋友,于是得到如是回答)
------解决方案--------------------
++
------解决方案--------------------
这是赋值运算符啊
------解决方案--------------------
是不是反了
------解决方案--------------------
反了