标题:[讨论]c++中两个字符串的比较
只看楼主
cpluslover
Rank: 1
等 级:新手上路
威 望:1
帖 子:91
专家分:0
注 册:2006-12-13
 问题点数:0 回复次数:1 
[讨论]c++中两个字符串的比较

请看下面的小程序,分析他们的结果: 请在运行前想想它的结果应该是什么,为什么,再去看结果ll.....................
#include<iostream>
int main()
{
if("your"=="your")
std::cout<<"they equal"<<std::endl;

else
std::cout<<"not equal.";

return 0;
}
钱能的C++P168面的小例子,引用他的分析如下"程序中两个字符串的比较实质上是两个地址的比较。在编绎时,给了这两个字符串不同的存放地点,所以这两个字符串的地址是不同的。要使两个字符串真正从字面上进行比较,可以用库函数strcmp(),看稍后的描述。"



但大家可能都运行了,为什么结果反而是equal呢???“????

搜索更多相关主题的帖子: 字符 std equal 
2007-03-25 23:47
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

那应该是他说错了。

"your"是常量,也是一个指针(指向常量).
应该是一个const char * const.
int("your")表示的就是他的地址的值,如果两个"your"地址不同,那么两个int("your")编译会知道是哪个吗?


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-26 15:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-126783-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.816027 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved