一个2维字符数组
char a[2][3]
char //表示数组类型
a[2][3]
表示相当于有2个字符数组,每个字符数组的长度是3.
a[0] 表示第一维的字符数组,长度不能超过3(算上字符串结束符'\n');
a[1] 表示第二维的字符数组,同上。字符数组就是通常意义上的字符串。
注意:字符串如果不是用char *(指针字符串),那就不可以直接赋值!只可以初始化。
字符串赋值用strcpy函数,此函数在头文件string.h里包含。 如果声明的a是a[2][3]也就是二位字符数组,那可以这样赋值:
strcpy (a[0], "24");strcpy(a[1], "db");
注:平时使用的strcpy函数并没不带有缓冲buf,易出现溢出等问题。建议编写比较重要的代码时使用strncpy。
特别注意几点: 首先:这是二维字符数组,所以a[0]和a[1]才有意义,a[2]什么的都不存在。 其次:第一维第二维都只能存3个字符,如果想把abc存进去:
strcpy(a[0], "abc");
这样是有问题的。因为字符数组的末尾都应该有一个隐形的'\0'字符串结束符,所以3个长度只能存2个有效长度的字符。
而char *a[200],很类似于char a[][200];前面的维数不确定,但后面每一维度允许存放的字符长度已定为200。