int**P是否与int*(*P)等价
时间: 2024-08-15 17:02:40 浏览: 49
`int** P` 和 `int *(*P)` 的语法形式不同,它们并不完全等价,但可以表示相似的概念。
`int** P` 表示一个指向指向 `int` 类型指针的指针,即一个可以存放其他 `int` 指针的变量。这通常用于管理动态分配的二维数组或其他需要动态存储指针的情况。
而 `int *(*P)` 看起来像是两个嵌套的星号操作,这是 C/C++ 中一种特殊的指针声明,实际上这里 `(*P)` 表示的是一个函数返回 `int*` 类型的结果。这意味着 `P` 是一个指向函数的指针,该函数的功能是返回一个指向 `int` 的指针。
总结一下:
- `int** P` 是双指针,指向 `int` 指针;
- `int *(*P)` 是一个函数指针,它返回一个 `int` 指针。
两者的用途和含义是不一样的,不能直接互换。如果你想要一个指向动态分配的一维数组的指针,应该使用 `int**`;如果是函数返回一个指针,那么应该使用 `int *(*P)` 的形式。
相关问题
int**P是否与int*(*P)等价举例说明
`int** P` 和 `int* (*P)` 在 C 或 C++ 中代表的是两种不同的数据类型。
`int** P` 定义了一个指向指针的指针,即一个可以存储 `int` 类型指针地址的变量。你可以将它想象成一个盒子,这个盒子能装下另一个盒子,里面装的是 `int` 的地址。例如:
```c++
int a = 5;
int* p = &a; // p 指向 a 的地址
int** pp = &p; // pp 现在是一个指向 p 的指针,也就是 a 的地址
```
而 `int* (*P)` 则是一个函数指针,它接收一个 `int` 类型的指针作为参数,并返回一个同样类型的指针。简单地说,这是用来操作指针的函数的一个引用。比如:
```c++
void setPtr(int* p) {
P = &p; // 这里 P 是一个函数指针,它保存的是 setPtr 函数的返回值
}
void main() {
int b = 7;
int* q = &b;
setPtr(q); // P 现在指向的是 q
}
```
总结来说,两者的主要区别在于一个是存储其他指针的容器,另一个是处理指针的引用。在实际使用中,它们的应用场景和作用完全不同。
int* p与 int *p
int* p与int *p是等价的,都表示定义一个指向int类型的指针变量p。星号可以靠近int或者靠近p,没有区别。这是因为星号是用来修饰p的,而不是修饰int。所以int* p和int *p都是有效的写法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [int* p;和int *p;应怎样理解(c++语言中星号的位置)?](https://blog.csdn.net/qiuyeyijian/article/details/88080549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C语言中指针 int *p=0;和int *p;*p=0;和”&“的关系和区别详解](https://download.csdn.net/download/weixin_38537941/14851842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文