C++ 内存地址的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/17 10:23:55
#include <iostream>
using namespace std;

void main()
{
if("123"=="123")
cout<<"right"<<endl;
else
cout<<"error"<<endl;
system("PAUSE");
}

钱能的书上说,结果为“error”.是因为“if("123"=="123")”是在比较两个字符串的内存地址。但是我运行出来的结果为“right”。怎么回事呢?
唉` 真不知道现在哪里才有正版的C++编译器下载啊。。

字符串比较不能用==的,应该用strcmp才对啊.你这样写当然得出的结果永远是right了.
改成
if(strcmp("123","123")==0)没问题了.不过头文件中记得要加#include<string.h>

编译器的问题啦
如果你是 linux 用 自带的 g++即可
如果你是 windows 用 MinGW
如果你找不到,那你就用 vc啦
编译器没有正不正版之说,只是根据不同的情况做了很多的优化而已~~~