char* arr[][3]={{"北京","沈阳","哈尔滨"},{"北京","张家口"},{"北京","石家庄","武汉"}};第二个字符串数组的第三个元素是什么
时间: 2023-07-06 20:36:51 浏览: 42
`char* arr[][3]` 定义了一个二维数组 `arr`,共有 3 行 3 列,每个元素是一个指向 `char*` 类型的指针。
第二个字符串数组是 `arr[1]`,即 `{"北京", "张家口"}`。该数组有 2 个元素,第三个元素并不存在,因为该数组只有 2 个元素。
因此,第二个字符串数组的第三个元素是不存在的,也就是说该数组的 `arr[1][2]` 位置是没有值的。如果尝试访问该位置的值,可能会导致未知的错误。
相关问题
char arr[] = "12345"; char* arr1 = arr; char* arr2 = arr; *arr= "234576";哪里错了
这段代码有几个错误:
1. 在第三行中,应该使用指针 `arr2` 来指向字符串 "12345" 的地址,而不是将 `arr` 再次赋值给 `arr2`。
2. 在第四行中,应该使用单引号 `' '` 而不是双引号 `" "` 来表示字符。
正确的代码应该是这样的:
```
char arr[] = "12345";
char* arr1 = arr;
char* arr2 = &arr[0];
*arr = '2';
```
这段代码将字符 '2' 赋值给了字符串 "12345" 的第一个字符位置,即将字符串变为 "22345"。注意,`arr1` 和 `arr2` 都指向字符串 "12345" 的首地址,因此对 `*arr` 的修改会影响整个字符串。
char* arr[][3]={ {"北京","沈阳","哈尔滨"}, {"北京","张家口"}, {"北京","石家庄","武汉"} };char **p=arr[0];
这段代码定义了一个二维数组 `arr`,其中每个元素是一个指向 `char*` 类型的指针,数组共有 3 行 3 列,即总共有 9 个指针。每行表示一个字符串数组,每列表示该字符串数组中的一个元素。
接下来,将 `arr[0]` 赋值给 `char** p`,即将 `p` 指向 `arr` 的第一行,也就是指向了 `"北京"`、`"沈阳"`、`"哈尔滨"` 三个字符串的指针地址之一。
需要注意的是,该代码没有给出任何输出或者运算操作,因此没有明显的结果。