char **strArray;
时间: 2024-08-15 14:02:49 浏览: 50
`char **strArray` 是 C 或 C++ 中的一种指针声明,它表示 `strArray` 是一个指向字符(`char`)的指针数组。每个元素 `strArray[i]` 又是一个指向字符的指针,这意味着它可以存储字符串的地址。
例如,在C语言中,你可以这样定义并初始化这样一个数组:
```c
char *str1 = "Hello";
char *str2 = "World";
char **strArray;
strArray = malloc(sizeof(char*) * 2); // 分配空间给两个元素
strArray = str1;
strArray = str2;
```
在这个例子中,`strArray` 存储的是 `str1` 和 `str2` 字符串的地址。访问数组中的字符串可以通过 `strArray[i]` 进行,如 `printf("%s", strArray);` 将打印 "Hello"。
相关问题
char *strArray[3] = {"hello", "world", "!"};
This is an array of 3 strings (char arrays). The first element is "hello", the second is "world", and the third is "!". Each string is terminated with a null character ('\0') to indicate the end of the string.
Note that since the array is of type "char *", each element is actually a pointer to a char array. This means that the strings are stored as separate arrays in memory, and the array "strArray" simply holds pointers to the start of each string.
char*[]怎么转char**
`char*[]` 是一个字符指针数组,它存储了多个指向字符的指针。要将 `char*[]` 转换成 `char**`,即一个指向字符指针的指针数组,你可以按照以下步骤操作:
1. 声明一个新的 `char**` 类型的指针变量,用于存放转换后的结果。
2. 使用循环遍历 `char*[]` 数组,为新创建的 `char**` 变量分配内存并复制每个元素的地址。
示例代码如下(假设有一个 `char*[]` 变量叫 `strArray`):
```c
char* strArray[] = {"Hello", "World", "CSDN"};
int len = sizeof(strArray) / sizeof(strArray); // 获取数组长度
char** strPtrArray = (char**)malloc(len * sizeof(char*)); // 分配内存
if (strPtrArray != NULL) {
for (int i = 0; i < len; i++) {
strPtrArray[i] = strArray[i]; // 复制地址
}
}
```
完成后,`strPtrArray` 就是一个指向 `char*` 的指针数组,其中每个元素都对应 `strArray` 中的一个字符串指针。
阅读全文