小弟我发现一个很神奇的事情,关于用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); 发现一个是空心笑脸,一个是实心笑脸。不明觉厉啊,于是很无聊做了这个测试- -。

代码如下:
#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定义,也有赋值的,然后问了下朋友,于是得到如是回答)
小弟我发现一个很神奇的事情,关于用char得到真假判断并输出
------解决方案--------------------
引用:
第一个建议:放弃这种毫无意义的尝试,去看书
第二个建议:分清=和==
++
------解决方案--------------------
引用
3、当用 = 关系运算符时,真无数,假输出实心笑脸。


这是赋值运算符啊
------解决方案--------------------
引用:
char c=(1>2);//结果c=1,因为1>2为假(值1),ASCII的值1就是个笑脸....
char c=(1<2);//结果c=0,因为1<2为真(值0),ASCII的值0表示什么都没有,也就什么都不输出
。。。。

是不是反了小弟我发现一个很神奇的事情,关于用char得到真假判断并输出
------解决方案--------------------
引用:
Quote: 引用:

char c=(1>2);//结果c=1,因为1>2为假(值1),ASCII的值1就是个笑脸....
char c=(1<2);//结果c=0,因为1<2为真(值0),ASCII的值0表示什么都没有,也就什么都不输出
。。。。

是不是反了小弟我发现一个很神奇的事情,关于用char得到真假判断并输出

反了小弟我发现一个很神奇的事情,关于用char得到真假判断并输出