类型后面加个**是什么
#include <iostream>using namespace std;
struct aye {
int year;
};
int main() {
aye s1, s2, s3;
const aye * arp = {&s1, &s2, &s3};
const aye ** ppa = arp;
return 0;
}
1. 请问const aye ** ppa是什么意思?
2. aye *是指针,aye **是什么?
3. 为什么ppa的类型是aye **? 1.
定义了一个指针变量 ppa
2.
aye ** 还是指针,指向指针的指针
3.
因为等于号右边的 arp 的类型是 aye **
本帖最后由 jackz007 于 2021-9-4 21:03 编辑
const aye * arp = {&s1, &s2, &s3} ; // 定义有 3 个元素的指针数组 arp[],并初始化其 3 个元素分别为结构体 s1、s2、s3 的内存地址;
const aye ** ppa = arp ; // 定义 ppa 为指向结构体指针的指针,并初始化 ppa 指向指针数组 arp 的起始地址,这样,* ppa、* (ppa + 1)、* (ppa + 2) 就是分别指向 s1、s2、s3 的指针,而** ppa、** (ppa + 1)、** (ppa + 2) 则分别代表结构体 s1、s2、s3 本身 int *p;
这是一个指向 int 类型的 名字叫 p 的指针,这你知道吧,
那 aye* *ppa 不就是名字叫 ppa 的指向 aye* 类型的指针吗?
结合你的代码,aye* 类型不就是 arp 这个数组的类型吗?
也就是说这个 ppa 指针指向的不就是 arp 的第一个元素吗?
页:
[1]