鱼C论坛

 找回密码
 立即注册
查看: 1376|回复: 3

[已解决]strcmp函数比较两个不同地址为什么也是0呢?

[复制链接]
发表于 2020-6-10 09:48:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

#include<string.h>

int main(){



char a[]="aa";

char b[]="aa";

printf("%p\n",strcmp(&a[0],&b[0]));

printf("%d\t%d",&a[0],&b[0]);

return 0;

}

地址明显不一样,但是为什么输出还是0呢?求助各位大佬
最佳答案
2020-6-10 10:37:25
本帖最后由 sunrise085 于 2020-6-10 10:38 编辑

strcmp是比较两个字符串大小的,传入的参数是字符串的名字,也就是字符串的首地址。
你传入的是两个char数组的首地址,也就是两个字符串的首地址了。
strcmp(&a[0],&b[0])   和   strcmp(a,b)效果是一样的。
两个字符串内容是一样的,所以返回值就是0了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-10 10:27:24 | 显示全部楼层
地址指向相同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 10:37:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-6-10 10:38 编辑

strcmp是比较两个字符串大小的,传入的参数是字符串的名字,也就是字符串的首地址。
你传入的是两个char数组的首地址,也就是两个字符串的首地址了。
strcmp(&a[0],&b[0])   和   strcmp(a,b)效果是一样的。
两个字符串内容是一样的,所以返回值就是0了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 11:16:20 | 显示全部楼层
sunrise085 发表于 2020-6-10 10:37
strcmp是比较两个字符串大小的,传入的参数是字符串的名字,也就是字符串的首地址。
你传入的是两个char数 ...

哦哦,懂了,谢谢,刚才没转过来这个劲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表