(*(int *) p)
时间: 2024-05-03 13:15:29 浏览: 8
(*(int *) p) 是一个类型转换的表达式,它将指针p强制转换为int类型,并取出该指针指向的内存中的值。这个表达式的具体含义如下:
1. 首先,(int *)表示将指针p强制转换为int类型的指针。
2. 然后,*表示取出指针所指向的内存中的值。
总结起来,(*(int *) p) 的作用是将指针p所指向的内存中的值作为int类型的值返回。
相关问题
int **p
这是一个指向指针的指针,可以用来表示一个二维数组。例如,可以用它来动态创建一个二维数组:
```c++
int **p;
int row = 3, col = 4;
p = new int*[row];
for (int i = 0; i < row; i++) {
p[i] = new int[col];
}
```
这样就创建了一个 3 行 4 列的二维数组。注意,在使用完后需要手动释放内存:
```c++
for (int i = 0; i < row; i++) {
delete[] p[i];
}
delete[] p;
```
const int * p和const * int p 区别
const int * p 和 const * int p 是两种不同的语法表达方式,具有不同的含义和用途。
const int * p 表示 p 是一个指向常量整数的指针。这意味着指针 p 可以指向一个整数,但不能通过 p 来修改所指向的整数的值。即 p 是一个指向只读数据的指针。
const * int p 则是语法错误,应该是 const int * p 的错误写法。
请注意,在 C/C++ 中,声明符的结合性是从右至左的,所以 const int * p 应该被理解为 “const (int * p)” ,即 p 是一个指向常量整数的指针。
希望以上解释能对你有所帮助!如果你还有其他问题,请继续提问。