- #include
- 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
- 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 同样的验证
来源: https://www.2cto.com/kf/201810/784279.html