0

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

'a' == 97

将输出

1

编辑:我想要类似的东西

compare('a', 97)

哪个会输出

0

我该怎么办?

谢谢

4

3 回答 3

2

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

于 2013-05-15T20:11:55.087 回答
1

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

另一方面,如果您想要一个区分'a'achar和a97的比较,int那么您也很不走运。在 C 中,'a'是一个int,而不是一个char

于 2013-05-15T20:18:26.053 回答
0

在 C 中(与 PHP 相反),您在编译时就知道变量是否为charor类型,因此使用and运算符int没有意义。=====

我想要类似 compare('a', 97)

那是一个功能吗?如果是这样,则参数的类型在编译时是固定的,因此您无法实现它,并且无论如何调用该函数是没有意义的。您知道,在编译时,参数是否属于同一类型。

此外,如果我们有

 c = (char)40;
 i = 40;

那应该compare(c,i)返回什么?

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

您可以编写一个sizeof()在 之前进行比较的宏==,但是,这不会区分相同大小的不同类型,而且,它也没有多大意义。

于 2013-05-15T20:55:46.457 回答