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