題目:寫出以下代碼輸出。
#include<iostream>
using namespace std;
int main()
{
char str1[]="abc";
char str2[]="abc";
const char str3[]="abc";
const char str4[]="abc";
const char *str5="abc";
const char *str6="abc";
char *str7="abc";
char *str8="abc";
cout<<(str1==str2)<<endl;
cout<<(str3==str4)<<endl;
cout<<(str5==str6)<<endl;
cout<<(str7==str8)<<endl;
getchar();
}
結(jié)果是:

為神馬呢?
寫個代碼來看看內(nèi)存地址:
#include<iostream>
using namespace std;
int main()
{
char str1[]="abc";
char str2[]="abc";
const char str3[]="abc";
const char str4[]="abc";
const char *str5="abc";
const char *str6="abc";
char *str7="abc";
char *str8="abc";
printf("abc: %d\n",&("abc"));
printf("str1: %d\n",str1);
printf("str2: %d\n",str2);
printf("str3: %d\n",str3);
printf("str4: %d\n",str4);
printf("str5: %d\n",str5);
printf("str6: %d\n",str6);
printf("str7: %d\n",str7);
printf("str8: %d\n",str8);
getchar();
return 0;
}
結(jié)果是:

分析:
str1,str2,str3,str4是數(shù)組變量,它們有各自的空間,而數(shù)組名就是數(shù)組的首地址。
str5,str6,str7,str8是指針,它們指向了相同的常量區(qū)域。