int *p (),int (*p)(),void *p, int *p[6]的含义
时间: 2023-11-21 13:04:18 浏览: 34
1. `int *p()` 表示一个函数 `p`,该函数无参数,返回类型为 `int*`,也就是返回一个指向 `int` 类型的指针。
2. `int (*p)()` 表示一个指针 `p`,该指针指向一个函数,该函数无参数,返回类型为 `int`。
3. `void *p` 表示一个指针 `p`,该指针指向任意类型的数据,但是该指针无法直接访问所指向的数据,需要进行类型转换后才能使用。
4. `int *p[6]` 表示一个长度为 6 的数组 `p`,数组中每个元素都是一个指针,指向 `int` 类型的数据。可以使用 `p[i]` 来访问第 i 个元素,该元素是一个指向 `int` 类型数据的指针。
相关问题
void *p; (int *)p=3
这段代码是错误的,因为 `p` 是一个 `void` 指针,不能进行指针类型的转换。如果想要将 `p` 转换为 `int` 类型的指针,应该先将 `p` 转换为 `void` 指针的类型,然后再将其转换为 `int` 类型的指针,例如:
```c++
void *p;
int *q;
p = nullptr; // 或者 p = 0;
q = static_cast<int*>(p);
```
但是需要注意的是,这种类型的转换有可能会导致未定义行为,因为 `p` 指向的内存空间可能不是一个有效的 `int` 类型的变量。因此在进行指针类型转换时,需要谨慎处理。
void arry(const int * const *p)
这是一个函数声明,参数为指向常量整型指针的指针。
解释一下:
- const int:表示指向常量整型的指针,即指针所指向的数据不可修改。
- const int *:表示指向常量整型的指针。
- const int * const:表示指向常量整型的常量指针,即指针本身和指针所指向的数据都不可修改。
- const int * const *:表示指向指向常量整型指针的常量指针,即指针本身和指针所指向的指针所指向的数据都不可修改。
因此,这个函数的参数p是一个指向指向常量整型指针的常量指针,可以保证在函数内部不会修改p所指向的指针和指针所指向的数据。