我想知道是否可以比较整数和字符。可能是 Javascript 中的“===”。因为
'a' == 97
将输出
1
编辑:我想要类似的东西
compare('a', 97)
哪个会输出
0
我该怎么办?
谢谢
是的,这是可能的。is不仅是char
另一个整数类型,而且'a'
实际上本身就是 type 的文字int
。'a' == 97
一个完全有效的逻辑表达式也是如此。它的值是实现定义的。
'a'
并且97
是值,而不是对象,因此询问它们是否是同一个对象是没有意义的。如果您将这些值存储在对象中并且有指向这些对象的指针,您将比较这些指针。
另一方面,如果您想要一个区分'a'
achar
和a97
的比较,int
那么您也很不走运。在 C 中,'a'
是一个int
,而不是一个char
。
在 C 中(与 PHP 相反),您在编译时就知道变量是否为char
or类型,因此使用and运算符int
没有意义。==
===
我想要类似 compare('a', 97)
那是一个功能吗?如果是这样,则参数的类型在编译时是固定的,因此您无法实现它,并且无论如何调用该函数是没有意义的。您知道,在编译时,参数是否属于同一类型。
此外,如果我们有
c = (char)40;
i = 40;
那应该compare(c,i)
返回什么?
也许你能给我们一些动力,你为什么认为你需要这样的功能?
您可以编写一个sizeof()
在 之前进行比较的宏==
,但是,这不会区分相同大小的不同类型,而且,它也没有多大意义。