无法从int *** 转为 int *
时间: 2023-08-30 18:05:12 浏览: 58
这是因为 `int ***` 和 `int *` 是两种不同的类型,不能直接进行转换。
`int ***` 是一个三级指针,它指向一个指针的指针的指针,而 `int *` 是一个指向整型变量的指针。
如果你需要将一个 `int ***` 转换为 `int *`,你需要对三级指针进行解引用操作,直到得到一个指向整型变量的指针,然后再将其转换为 `int *` 类型。
例如,如果你有一个 `int ***p` 指针,你可以使用以下代码将其转换为 `int *`:
```
int *ptr = *(*(*(p)));
```
这里的 `*(*(*(p)))` 表示先解引用 `p` 三次,得到一个指向整型变量的指针,然后再将其转换为 `int *` 类型。
相关问题
unsigned int*转为int*
可以通过使用类型转换将unsigned int*转换为int*。具体方法如下:
```c++
unsigned int a = 1234;
unsigned int* ptr_a = &a;
int* ptr_b = reinterpret_cast<int*>(ptr_a);
```
在上述代码中,使用reinterpret_cast将unsigned int*类型的指针ptr_a转换为int*类型的指针ptr_b。这样就可以将unsigned int类型的数据转换为int类型的数据。
int*转为char*
将int类型的指针转换为char类型的指针可以使用类型强制转换。具体操作如下:
```
int *p = new int(65);
char *q = reinterpret_cast<char*>(p);
```
这样就将int类型的指针p转换为char类型的指针q。但是需要注意的是,这种操作可能会带来类型安全问题,需要谨慎使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)