字符串文字的C ++比较

西米西德

我是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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章