字符串数组可以在定义时初始化: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;
}
现在才开始学习,字符串显得很复杂,头都搞晕了,等以后找到原因再来复习。