const char ca[]="test";
const char cb[]="test";
const char *pca="test"; //(*)
const char *pcb="test";
cout<<(ca==cb)<<endl; //0
cout<<(pca==pcb)<<endl; //1
我对这个结果感到很困惑。
当处理
ca==cb
时,ca
和 cb
是不同的对象,它比较第一个元素的地址,因此 &ca[0]!=&cb[0]
。但我不理解
pca
和 pcb
的行为。(*) 是否等效于
const char temp[]="test";
const char *pca = temp;
"test"
是一个对象吗?而且 pca
和 pcb
都指向这个对象的第一个元素吗?