3.以下两个小程序编译会报错,请解决掉错误,并说明原因。 (1)int main() { int **p, a[3][2]; p = &a; return 0; } 编译报错: cannot convert ‘int (*)[3][2]’ to ‘int **’ in assignment (2) int main() { int **p, a[3][2]; p = a; return 0; } 编译报错: cannot convert 'int [3][2]' to ‘int **’ in assignment
时间: 2023-06-13 22:08:43 浏览: 66
(1) int main() { int (*p)[3][2], a[3][2]; p = &a; return 0; }
原因:a是一个二维数组,&a是一个三维数组的指针。而p是一个二级指针,所以不能直接将&a赋值给p。将p改为一个指向二维数组的指针即可。
(2) int main() { int (*p)[2], a[3][2]; p = a; return 0; }
原因:a是一个二维数组,而p是一个指向指针的指针,所以不能直接将a赋值给p。将p改为一个指向一维数组的指针即可。
相关问题
以下两个小程序编译会报错,请解决掉错误,并说明原因。 (1)int main() { int **p, a[3][2]; p = &a; return 0; }
编译错误信息为:invalid conversion from 'int (*)[2]' to 'int**'。错误的原因是指针p的类型是int**,即指向指针的指针,而&a的类型是int(*)[2],即指向数组的指针,它们的类型不匹配。可以将指针p的类型改为int(*)[2],即指向数组的指针,代码如下:
```
int main() {
int (*p)[2], a[3][2];
p = a;
return 0;
}
```
注意,对于二维数组,指针p的类型应该是指向数组的指针,而不是指向指针的指针。
请解决掉错误,并说明原因:int main() { int **p, a[3][2]; p = a; return 0; } 编译报错: cannot convert 'int [3][2]' to ‘int **’ in assignment
这个错误是因为 `int **p` 和 `int a[3][2]` 的类型不同,不能直接赋值。`int **p` 是一个指向指针的指针,而 `int a[3][2]` 是一个二维数组。虽然二维数组和指针的本质相同,但是在 C++ 中,它们的类型是不同的。
如果你想在函数中使用二维数组,你可以将数组的第一个元素的地址赋值给一个指向指针的指针变量。在这个例子中,你可以这样修改代码:
```
int main() {
int **p, a[3][2];
p = new int*[3];
for(int i = 0; i < 3; i++)
p[i] = a[i];
return 0;
}
```
这里我们首先将 `p` 声明为一个二级指针,并使用 `new` 在堆上分配一个指针数组 `p`。然后我们将每个 `a[i]` 的地址赋值给 `p[i]`,这样 `p` 就指向了 `a` 数组的每一行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)