我是c ++新手(只是oldschool c)。我儿子要求与此有关的帮助,我无法解释。如果他问我“如何比较字符串”,我会告诉他使用strcmp(),但这不是让我感到困惑的原因。这是他的要求:
int main()
{
cout << ("A"< "Z");
}
将打印1
int main()
{
cout << ("Z"< "A");
}
也会打印1,但是
int main()
{
cout << ("Z"< "A");
cout << ("A"< "Z");
}
然后将打印10。单独地,两个cout语句都打印1,但是连续执行时,我得到了不同的答案?
您正在比较内存地址。显然,您的编译器将字符串文字按其遇到的顺序放置在内存中,因此第一个要比第二个“小”。
由于在第一个代码段中首先看到“ A”,然后是“ Z”,因此“ A”较小。由于它在第二个中首先看到“ Z”,因此“ Z”较小。在最后一个代码段中,当第二个命令滚动时,它已经放置了文字“ A”和“ Z”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句