#include<stdio.h>
char *a="Hello";
extern void func();
int main()
{
char *b="Hello";
char *c="Hello1";
if(a==b)
printf("a==b \n"); //两个指针指向同一块内存
else
printf("a!=b \n");
if(a==c)
printf("a==c \n");
else
printf("a!=c \n");
func();
return 0;
}
#include <stdio.h>
extern char *a;
char *e="Hello";
void func()
{
char *f="Hello";
if(f==a)
printf("a==f \n");
else
printf("a!=f \n ");
if(f==e)
printf("f==e \n");
else
printf("f!=e \n");
}
最终结果:
a==b
a!=c //前两个说明,同文件,同值的常量指向同一块内存
a!=f //1,3说明,同值不同文件,内存块不同
f==e//与1,2同样的验证
本文通过C语言代码示例,详细解析了字符串比较的过程,展示了在不同文件中相同字符串常量如何分配内存,以及这如何影响字符串比较的结果。文章通过具体的代码运行结果,解释了在C语言中,即使字符串值相同,如果它们位于不同的文件中,其内存地址也可能不同,从而导致比较结果不一致的现象。

被折叠的 条评论
为什么被折叠?



