一个数组int a[5],*p
时间: 2024-05-19 15:14:03 浏览: 12
,请问以下代码输出什么?
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
p = &a[2];
cout << *p << endl;
p++;
cout << *p << endl;
p--;
cout << *p << endl;
cout << *(p+2) << endl;
输出结果:
3
4
3
5
解释:
1. `p = &a[2];` 将指针p指向a[2],即数组中的第三个元素,其值为3。
2. `p++;` 将指针p向后移动一个位置,指向a[3],即数组中的第四个元素,其值为4。
3. `p--;` 将指针p向前移动一个位置,指向a[2],即数组中的第三个元素,其值为3。
4. `*(p+2)` 先将指针p向后移动2个位置,指向a[4],即数组中的最后一个元素,其值为5,再用解引用符*取出该元素的值。
相关问题
c++中在数组名前加**是什么意思
在 C 语言中,数组名前加 ** 表示一个指向指针数组的指针。它可以用来表示一个指针数组的数组名,这个指针数组中的每一个元素也是一个指针,指向一个存储区域,该存储区域可以存储数组的元素。这种用法通常用于多维数组的动态分配和传递参数。例如:
```c
int **p; // 声明一个指向指针数组的指针
int *a[5]; // 声明一个指针数组
p = a; // 将指针数组的首地址赋值给指向指针数组的指针
// 动态分配一个二维数组
p = (int **)malloc(sizeof(int *) * ROWS);
for (int i = 0; i < ROWS; ++i) {
p[i] = (int *)malloc(sizeof(int) * COLS);
}
```
在这个例子中,我们声明了一个指向指针数组的指针 p 和一个指针数组 a,然后将指针数组 a 的首地址赋值给指向指针数组的指针 p,最后用动态内存分配的方式分配了一个二维数组。
声明数组,对比int,int *和数组首地址
int a[10]; //声明一个长度为10的int类型数组a
int *p; //声明一个int类型的指针p
p = a; //将数组a的首地址赋值给指针p
//此时a和p都指向数组a的首地址,但a是一个数组,p是一个指针,所以它们有以下不同:
//1. a的大小为10*sizeof(int),而p的大小为sizeof(int *)
//2. a可以使用下标访问元素,如a[0]、a[1]等,而p需要使用指针运算符*和+来访问元素,如*p、*(p+1)等
//3. a是一个常量指针,不能重新指向其他地址,而p可以重新指向其他地址
注:本答案中的int类型均指32位整型。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![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)