【发布时间】:2020-08-05 21:00:51
【问题描述】:
1- 什么是一维字符串数组?
2- char *[] 是二维的吗?
3-char *[]是一维字符串数组吗?
谢谢。
【问题讨论】:
-
如果定义完整,它们将是指向字符的一维数组,例如:
char *array[] = {"one", "two"};或char *array[2];
标签: c arrays multidimensional-array c-strings
1- 什么是一维字符串数组?
2- char *[] 是二维的吗?
3-char *[]是一维字符串数组吗?
谢谢。
【问题讨论】:
char *array[] = {"one", "two"}; 或 char *array[2];
标签: c arrays multidimensional-array c-strings
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 不包含一个字符串,因为它不包括用作初始值设定项的字符串文字的终止零。
或者
char * s[] = { "Hello" };
此数组不包含字符串。它是一个指向字符串文字的指针的数组。
【讨论】: