我想知道是否可以比较整数和char。 可能是Javascript中的“===”。 因为
'a' == 97
将输出
1
编辑:我想要像
这样的东西compare('a', 97)
哪个会输出
0
我该怎么做?
由于
答案 0 :(得分:2)
是的,这是可能的。 char
不仅仅是另一种整数类型,而'a'
实际上本身也是int
类型的文字。所以'a' == 97
是一个完全有效的逻辑表达式。它的值是实现定义的。
答案 1 :(得分:1)
'a'
和97
是值,而不是对象,因此询问它们是否是同一个对象是没有意义的。如果您将这些值存储在对象中并指向了这些对象,则可以比较指针。
另一方面,如果您希望进行比较,以区分'a'
是char
而97
是int
,那么您也不幸。在C中,'a'
是int
,而不是char
。
答案 2 :(得分:0)
在C中(与PHP相反),您在编译时知道变量是char
还是int
类型,因此==
和{{1}没有意义运营商。
我想要类似的东西 比较('a',97)
这是一个功能吗?如果是这样,参数的类型在编译时是固定的,所以你无法实现它,并且无论如何调用该函数是没有意义的。您知道,在编译时,如果参数类型相同或不同。
此外,如果我们有
===
c = (char)40;
i = 40;
应该返回什么?
也许你可以给我们一些动力,为什么你认为你需要这样的功能?
您可以编写一个在compare(c,i)
之前放置sizeof()
比较的宏,但是,这不会区分不同类型的相同大小,而且,它实际上没有多大意义。< / p>