将数组数组强制转换为指针数组

Casting array of arrays to array of pointers

本文关键字:数组 指针 转换      更新时间:2023-10-16

我可以将数组int arr[4][10]的数组强制转换为指针int *arr[4]的数组吗?

我应该如何写演员表?

我可以将数组数组int arr[4][10]强制转换为指针数组int*arr[4]吗?

没有。

您可以将int arr[4][10]强制转换为int (*arr)[10],不过—或者更确切地说,前者是隐式可转换为后者,您根本不需要任何显式强制转换。

顺便说一句,最好从一开始就避免使用原始数组。首选std::array<T,N>

在这种情况下,您可以使用std::array<std::array<int,10>,4>。。然后尝试以完全不需要强制转换的方式设计代码。

注意,"int*a[4]"只有4个指向int的指针,否则它可以指示4个int数组,但int"a[4][10]"有40个整数数据类型
所以你不能投射它。