c语言用==比较式是比较指针大小码

 我来答
tattackor
推荐于2017-10-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:892万
展开全部

1、字符串比较用等号的话实际比较的是指针。例如:

char *p1="a";
char *p2="b";
if(p1==p2)
{
.........
}
比较p1和p2吧,这个比较实际上比较的是指针大小,也就是"a"、"b"这两个字符串首地址的大小

如果要比较字符串大小可以使用strcmp函数

2、例程:

int main()
{
 char *p = "x",s[] = "x";
 printf("%d\n","x"=="f"); //二者地址不同,所以是0
 printf("%d\n","x"=="x"); //p指向字符串常量"x",以及程序中出现"x"常量的地方发生了常量折叠,所以该句与下一句比较的地址相同
 printf("%d\n",p=="x");
 printf("%d\n",s=="x");  //s是字符串数组,地址与字符串常量"x"地址不同
}
兔子和小强
推荐于2017-09-28 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1433万
展开全部
字符串比较用等号的话实际比较的是指针
int main()
{
char *p = "x",s[] = "x";
printf("%d\n","x"=="f"); //二者地址不同,所以是0
printf("%d\n","x"=="x"); //p指向字符串常量"x",以及程序中出现"x"常量的地方发生了常量折叠,所以该句与下一句比较的地址相同
printf("%d\n",p=="x");
printf("%d\n",s=="x"); //s是字符串数组,地址与字符串常量"x"地址不同
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱阳康F
2012-07-11 · TA获得超过588个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:118万
展开全部
==是比较数值的。指针的大小有什么好比的。。。一般是比较指针指向的值的大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zghmzcb
2012-07-11 · TA获得超过276个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:188万
展开全部
你的提问能不能详细点,我猜测你的意思是
char *p1="a";
char *p2="b";
if(p1==p2)
{
.........
}
比较p1和p2吧,这个比较实际上比较的是指针大小,也就是"a"、"b"这两个字符串首地址的大小
如果要比较字符串大小可以使用strcmp函数
希望能帮到你!
追问
就是用==号比较字符串大小,是比较指针大小码
追答
不是比较字符串的大小,字符串在内存中的分布和字符数组一样,指针的大小只是字符串首字符在内存中的地址值,也就是说指针的大小就是字符串首地址的值
void main()
{
char *p1="a";
char *p2="b";
printf("p1:%x\np2:%x\n",p1,p2);
}
这样你就能看到这两个地址的值了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pflovewb
2012-07-11
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
表示指针函数
追问
就是用==号比较字符串大小,是比较指针大小码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式