同学们,如何理解?“逻辑运算符两侧运算对象的数据类型可以是任何类型的数据 ...”
同学们,如何理解?“逻辑运算符两侧运算对象的数据类型可以是任何类型的数据,因为逻辑操作符的两边最终都被转换成bool值操作 ”
说人话就是
if(任何数据类型 && 任何数据类型) //这样是可以跑的
但我不理解内部过程
比如
#include <stdio.h>
main()
{
char ch1='a',ch2='b';
if(ch1 && ch2){
printf("true");
}
else
printf("false");
}
====================
这个 if(ch1 && ch2) 是怎么判断的?
是不是这样?
ch1 自动转换成ASCII码97
ch2 自动转换成ASCII码98
然后
97 && 98
然后
97不是0,所以直接转换成_Bool型,1
98不是0,所以直接转换成_Bool型,1
然后
1 && 1
然后
返回 1
printf("true");
本帖最后由 jackz007 于 2022-10-9 21:48 编辑
你的理解很对啊,难道还有什么问题?
逻辑值和 char、int、long long 等一样都是数值型量,只不过逻辑型量只有两个值,0 和 1,只需要一个二进制位就足够了,char 需要 8 个二进制位,int 需要 32 个,long long 需要 64 个,这就是他们最本质的区别。char、int、long long 的 0 值对应于 false,非 0 值对应于 true。 这样是可以的,最终就是 二进制进行操作, 0假,非0真。 本帖最后由 zhangjinxuan 于 2022-10-15 21:58 编辑
鱼币!我就玩5次{:10_256:} 第2次.... 第3次.... 我来学学 {:10_256:}{:10_256:}{:10_256:} {:10_245:}
页:
[1]