C/C++对于指向相等(在代码中不是同一个)字符串指针的处理
考虑如下语句:
char *a = "abc";
char *b = "abc";
在gcc中,a==b。验证如下:
#include <stdio.h>
int main()
{
char *a = "abc";
char *b = "abc";
printf("a=%x, b=%x\n", a, b);
return 0;
}
输出:
C:\Users\User0\桌面>gcc test2.c -o test2
C:\Users\User0\桌面>test2
a=404000, b=404000
C:\Users\User0\桌面>
a和b指向相同的内存区域,编译器将相同字符串常量识别为1个。