C++ Visual studio C++;不带声明的字符串比较
我想了解以下代码在Microsoft visual studio C/C++(2012版)中的结果。事实上,当生成解决方案时,结果是“1”(True)。但是,在ASCII表格中,单词“a”小于单词“z”。因此,结果应该是“0”(False)。即使我把运算倒过来,意思是(“z”>“a”)。结果是“1”。我也尝试了这个操作(“a”<“z”)和(“z”<“a”),结果都是“0” 谁能告诉我发生了什么事C++ Visual studio C++;不带声明的字符串比较,c++,string,visual-studio,visual-studio-2010,visual-studio-2012,C++,String,Visual Studio,Visual Studio 2010,Visual Studio 2012,我想了解以下代码在Microsoft visual studio C/C++(2012版)中的结果。事实上,当生成解决方案时,结果是“1”(True)。但是,在ASCII表格中,单词“a”小于单词“z”。因此,结果应该是“0”(False)。即使我把运算倒过来,意思是(“z”>“a”)。结果是“1”。我也尝试了这个操作(“a”
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << ("a" > "z") << endl;
}
#包括
#包括
使用名称空间std;
int main()
{
cout“z”)您的代码几乎与您编写的代码相同:
const char s1[2] = {'a'};
const char s2[2] = {'z'};
int main()
{
cout << (s1 < s2) << endl;
}
const char s1[2]={'a'};
const char s2[2]={'z'};
int main()
{
CUT是一个指针,比较字符串的地址,而不是它们的内容。在SO中查看这个问题。这是关于C的,但是C++中的行为是相同的。