1- 什么是一维字符串数组?
2- 是 char *[]
2维的?
3-是 char *[]
1维字符串数组?
谢谢你
char *[]
是一个不完全类型的一维数组,其指针类型为char。
例如,你可以写成
char *s[] = { "string1", "string2", "string3" };
而在本例中,数组s是一个由三个指针组成的数组,指向字符串字面。
如果你将在任何函数之外声明一个数组,如
char *s[];
那么你将得到一个有一个元素的一维数组的暂定定义。
一个二维数组的声明看起来像这样
char s[N1][N2];
或
char s[][N2] = { /* some initializers */ };
哪儿 N1
和 N2
是一些正整数。
一维或二维字符数组是否包含字符串取决于数组的使用者。
下面是一个例子
char s1[] = "Hello";
char s2[6] = "Hello";
char s3[5] = "Hello";
这里,数组s1和s2包含一个字符串,而数组s3不包含一个字符串,因为它不包含作为初始化器的字符串文字的结尾0。
或者说
char * s[] = { "Hello" };
这个数组不包含一个字符串。它是一个指向字符串文字的一个指针的数组。