字符串數組可以在定義時初始化:char a[]="abcdefg",*p ;//指針如果定義時不初始化,cin>>p;是可以的,如果初始化了就不行了(這個有點費解)。
但是不能定義後直接賦值,如:a="23qf";也不能a=p;
只能用strcpy(a,p);
但是:p="23fdsaf";p=a;是可以的...
數組的時候各種便秘,只要一變成指針就立馬通暢,怪不得都愛用指針。
#include <iostream>
using namespace std;
int main()
{
char *p[3],a[20]; //**p編譯通過,運行報錯//*p[]可以在這裡初始化....和*p又不一樣,這太讓人蛋疼了
for (int i=0;i<3;i++)
{
cout<<&p[i];
cin>>a; //cin>>p[i];strcpy(p[i],a);均不行,編譯時能通過,但是一運行就報錯。只能通過賦值的方式傳遞給指針//但是strcat仍然會報錯...
p[i]=a;
}
cout<<p; //顯示p的地址,*p為顯示整個串(整個數組)
return 0;
}
現在才開始學習,字符串顯得很復雜,頭都搞暈了,等以後找到原因再來復習。