*p[4]和(*p)[4]
时间: 2024-06-14 10:06:29 浏览: 11
*p[4]和(*p)[4]的区别如下:
1. *p:这是一个错误的表达式。它首先访问p指针所指向的数组中的第5个元素(由于数组下标从0开始),然后再对该元素进行解引用操作。但是,p指针指向的是一个int(*)类型的指针,而不是一个数组,因此无法使用该表达式。
2. (*p):这是一个正确的表达式。它首先对p指针进行解引用操作,得到指向一个含有4个int型数据的数组。然后,再访问该数组中的第5个元素(由于数组下标从0开始)。这个表达式可以用来访问p指针所指向的数组中的特定元素。
范例:<<引用:由于()的优先级高于[]的优先级,因此p先和()结合,表示p是一个指针,那么它指向的类型是什么呢?就是int ,即一个含有四个int型数据的数组。(函数指针也可以这么理解)那么对其初始化的话也只能使用一个int(*)类型的指针。例如: void test() { int a{1,2,3,4,5,6}; int (*p)=a; cout<<(*p)<<endl; cout<<(*p)<<endl; } 。 引用:不难想出其跳跃的长度是指向的数组的长度,即4。 void test() { int a{1,2,3,4,5,6}; int (*p)=a; cout<<(*(p+1))<<endl; } 。
请回答我或者给我介绍或演示一下:*p和(*p)?
*p是一个错误的表达式,无法使用。
(*p)可以用来访问p指针所指向的数组中的第5个元素。
```cpp
void test() {
int a[2][4] = {1, 2, 3, 4, 5, 6};
int (*p)[4] = a;
cout << (*p)[4] << endl; // 输出:5
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)