c++字符串数组问题 20

#include<iostream>#include<string>usingnamespacestd;intmain(){chara1[]={"helloworld"}... #include<iostream>
#include<string>
using namespace std;
int main()
{
char a1[]={"helloworld"};
cout<<a1<<endl;
char b1[]={'h','e','l','l','o','w','o','r','l','d'};
cout<<b1<<endl;
char c1[]={'h','e','l','l','o','w','o','r','l','d','\0'};
cout<<c1<<endl;

char b2[11]={'h','e','l','l','o','w','o','r','l','d'};
cout<<b2<<endl;
char c2[11]={'h','e','l','l','o','w','o','r','l','d','\0'};
cout<<c2<<endl;

if (b1==c1){cout<<"b1=c1"<<endl;}else{cout<<"b1!=c1"<<endl;}
if (b2==c2){cout<<"b2=c2"<<endl;}else{cout<<"b2!=c2"<<endl;}
if (b1==b2){cout<<"b1=b2"<<endl;}else{cout<<"b1!=b2"<<endl;}
if (c1==c2){cout<<"c1=c2"<<endl;}else{cout<<"c1!=c2"<<endl;}
if (c1==b2){cout<<"c1=b2"<<endl;}else{cout<<"c1!=b2"<<endl;}
}
这里为何它们不相等呀?输出结果是相同的呀?
解释为何???
谢谢!!!
展开
 我来答
silvernii
2009-08-22 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1615万
展开全部
数组名等价于该数组第一个元素的地址,是个常量
定义2个数组,2个数组的首元素地址肯定不一样的
即使定义带伍简
char a[4]={'a','b','c','\0'};
char b[4]={'a','b','c','\0'蠢裤};
这2个数组的第一个元素的地址橘谈也是不同的,也就是a!=b
可以用printf("%p",a)来输出a的值,同样的方法输出b的值,看看这2个地址值是什么
dwthead
2009-08-22 · TA获得超过2309个赞
知道小有建树答主
回答量:1478
采纳率:0%
帮助的人:1920万
展开全部
字符数组用strcmp比较

==比的是首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旁笑槐NH
2009-08-22 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2874万
展开全部
这里羡举滚相等是内存相等.通常情况两次答盯地址比较不会相同,但C/C++有常量池机制.如果char *s1="helloworld",char* s2="helloworld"那么s1==s2.其它情况兄余都不会相等.
要比较两字符串内容,请用strcmp函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式