#include <stdio.h>
int main()
{
char str1[] = "hello bit.";
char str2[] = "hello bit.";
char* str3 = "hello bit.";
char* str4 = "hello bit.";
if (str1 == str2)
printf("str1 and str2 are same\n");
else
printf("str1 and str2 are not same\n");if (str3 == str4)
printf("str3 and str4 are same\n");
else
printf("str3 and str4 are not same\n");return 0;
}
输出结果:
每一个数组的创建都会在内存中开辟一个新的空间,而数组表示的是·数组首元素的地址,所以str1不等于str2;而指针指向的字符串,为常量字符串,不能被修改,且两个字符串相同,所以只在内存中开辟了一块空间,所以str3和str4指向的地址相同!