char和int之间的严格比较

时间:2013-05-15 20:10:49

标签: c char int equals strict

我想知道是否可以比较整数和char。 可能是Javascript中的“===”。 因为

'a' == 97

将输出

1

编辑:我想要像

这样的东西
compare('a', 97)

哪个会输出

0

我该怎么做?

由于

3 个答案:

答案 0 :(得分:2)

是的,这是可能的。 char不仅仅是另一种整数类型,而'a'实际上本身也是int类型的文字。所以'a' == 97是一个完全有效的逻辑表达式。它的值是实现定义的。

答案 1 :(得分:1)

'a'97是值,而不是对象,因此询问它们是否是同一个对象是没有意义的。如果您将这些值存储在对象中并指向了这些对象,则可以比较指针。

另一方面,如果您希望进行比较,以区分'a'char97int,那么您也不幸。在C中,'a'int,而不是char

答案 2 :(得分:0)

在C中(与PHP相反),您在编译时知道变量是char还是int类型,因此==和{{1}没有意义运营商。

  

我想要类似的东西   比较('a',97)

这是一个功能吗?如果是这样,参数的类型在编译时是固定的,所以你无法实现它,并且无论如何调用该函数是没有意义的。您知道,在编译时,如果参数类型相同或不同。

此外,如果我们有

===

c = (char)40; i = 40; 应该返回什么?

也许你可以给我们一些动力,为什么你认为你需要这样的功能?

您可以编写一个在compare(c,i)之前放置sizeof()比较的宏,但是,这不会区分不同类型的相同大小,而且,它实际上没有多大意义。< / p>