运行下面代码,结果?
#include<stdio.h>
#include<stdlib.h>
//#include<assert.h>
int main()
{
char str1[]="hello world";
char str2[]="hello world";
char* str3="hello world";
char* str4="hello world";
if(str1==str2)
{
printf("str1 and str2 is same\n");
}
else{
printf("str1 and str2 is not same\n");
}
if(str3==str4)
{
printf("str3 and str4 is same\n");
}
else
{
printf("str3 and str4 is not same\n");
}
system("pause");
return 0;
}
这个是考察数组和指针
当用前两种表示字符串数组时,系统会为他们分别分配两个长度为12个字节的空间,并把内容拷贝到数组中去,所以str1和str2不同,而已指针表示字符串数组,指针指向存储该数组的地址,所以str3和str4相同
运行结果