当它不应该是C++时,逻辑比较失败

d.b*_*ech -3 c++ vector

我一直有一个问题,这个比较if (code->at(i) == guess.at(i)) 失败了,即使它不应该因为它们都是'0':http://puu.sh/bvCRB/c640fb85a4.png

guess是炭的向量s(vector<char> guess){code是一个指向炭的矢量vector<char> * code

Pio*_*cki 5

请注意Visual Studio显示的区别:

Name       Char     Value
code[0]    '\0'      0
guess[0]   '0'       48
Run Code Online (Sandbox Code Playgroud)

也就是说,'0'(存储在guess[0])中是一个0带有ASCII码的字符48,而code[0]hold '\0'(见反斜杠代表一个转义字符)是一个带有ASCII码的特殊字符0(称为nul终止字符).因此,它们是不同的.