C风格字符串

字符串数组可以在定义时初始化: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;
}

现在才开始学习,字符串显得很复杂,头都搞晕了,等以后找到原因再来复习。

原文地址:https://www.cnblogs.com/chukuang/p/5421269.html