strcmp函数比较两个不同地址为什么也是0呢?
#include<stdio.h>#include<string.h>
int main(){
char a[]="aa";
char b[]="aa";
printf("%p\n",strcmp(&a,&b));
printf("%d\t%d",&a,&b);
return 0;
}
地址明显不一样,但是为什么输出还是0呢?求助各位大佬 地址指向相同 本帖最后由 sunrise085 于 2020-6-10 10:38 编辑
strcmp是比较两个字符串大小的,传入的参数是字符串的名字,也就是字符串的首地址。
你传入的是两个char数组的首地址,也就是两个字符串的首地址了。
strcmp(&a,&b) 和 strcmp(a,b)效果是一样的。
两个字符串内容是一样的,所以返回值就是0了。 sunrise085 发表于 2020-6-10 10:37
strcmp是比较两个字符串大小的,传入的参数是字符串的名字,也就是字符串的首地址。
你传入的是两个char数 ...
哦哦,懂了,谢谢,刚才没转过来这个劲
页:
[1]