关于《C++程序设计课程》钱能,有一个小疑问
关于《C++程序设计教程》钱能,有一个小疑问?
书中讲解字符串的一小节中有这样一个例子。为什么给书上说的不一样呢。
结果是:not equal
给出的结论是:程序中两个字符串的比较实质上是两个地址的比较?
求解。
------解决方案--------------------
没错,程序中两个字符串的比较实质上是两个地址的比较。
因为这是两个不同的字符串,所以"not equal"
要比较两个字符串的内容是否一致,可用strcmp("join", "join")
------解决方案--------------------
if ("join"=="join"),比的不是字符串的内容而是两个字符串的地址,至于地址相不相同,"join"在内存中只有一份还是两份,依不同的编译器或者编译器设置,没有标准答案吧。
书中讲解字符串的一小节中有这样一个例子。为什么给书上说的不一样呢。
#include <iostream.h>
void main()
{
if("join"=="join")
cout<<"equal\n";
else
cout<<"not equal\n";
}
结果是:not equal
给出的结论是:程序中两个字符串的比较实质上是两个地址的比较?
求解。
------解决方案--------------------
没错,程序中两个字符串的比较实质上是两个地址的比较。
因为这是两个不同的字符串,所以"not equal"
要比较两个字符串的内容是否一致,可用strcmp("join", "join")
------解决方案--------------------
if ("join"=="join"),比的不是字符串的内容而是两个字符串的地址,至于地址相不相同,"join"在内存中只有一份还是两份,依不同的编译器或者编译器设置,没有标准答案吧。