什么是1维字符串数组?

问题描述 投票:-1回答:1

1- 什么是一维字符串数组?

2- 是 char *[] 2维的?

3-是 char *[] 1维字符串数组?

谢谢你

c arrays multidimensional-array
1个回答
0
投票

char *[] 是一个不完全类型的一维数组,其指针类型为char。

例如,你可以写成

char *s[] = { "string1", "string2", "string3" };

而在本例中,数组s是一个由三个指针组成的数组,指向字符串字面。

如果你将在任何函数之外声明一个数组,如

char *s[];

那么你将得到一个有一个元素的一维数组的暂定定义。

一个二维数组的声明看起来像这样

char s[N1][N2];

char s[][N2] = { /* some initializers */ };

哪儿 N1N2 是一些正整数。

一维或二维字符数组是否包含字符串取决于数组的使用者。

下面是一个例子

char s1[] = "Hello";
char s2[6] = "Hello";
char s3[5] = "Hello";

这里,数组s1和s2包含一个字符串,而数组s3不包含一个字符串,因为它不包含作为初始化器的字符串文字的结尾0。

或者说

char * s[] = { "Hello" };

这个数组不包含一个字符串。它是一个指向字符串文字的一个指针的数组。

© www.soinside.com 2019 - 2024. All rights reserved.