如果我用这种方式比较两个字符会发生什么:
if ('a' == 'b')
doSomething();
我非常好奇当语言(和编译器)遇到这样的比较时会发生什么。当然,如果这是一种正确的做法,还是我必须使用类似于strcmp()
的东西。
编辑
等等。
由于有人没有理解我的真正意思,我决定用另一种方式来解释。
char x, y;
cout << "Put a character: ";
cin >> x;
cout << "Put another character: ";
cin >> y;
if (x == y)
doSomething();
当然,在if
括号中,您可以将==
替换为任何其他比较运算符。我真正想知道的是:在C/C++中如何考虑字符?当编译器比较两个字符时,它如何知道'a'与'b'不同?它参考ASCII表吗?
(new Char('a')).equals(new Char('b'))
这样的写法是正确的(或者更复杂一些,涉及到一个包装工厂)。 - Kerrek SB'a' == 'b'
是在没有false
的编程语言中表达 false 的好方法。 - fredoverflow