鱼cpython学习者 发表于 2021-9-4 20:40:38

类型后面加个**是什么

#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 **?

人造人 发表于 2021-9-4 20:58:50

1.
定义了一个指针变量 ppa
2.
aye ** 还是指针,指向指针的指针
3.
因为等于号右边的 arp 的类型是 aye **

jackz007 发表于 2021-9-4 21:01:16

本帖最后由 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 本身

Max472 发表于 2021-9-4 21:04:36

int *p;
这是一个指向 int 类型的 名字叫 p 的指针,这你知道吧,

那 aye* *ppa 不就是名字叫 ppa 的指向 aye* 类型的指针吗?

结合你的代码,aye* 类型不就是 arp 这个数组的类型吗?

也就是说这个 ppa 指针指向的不就是 arp 的第一个元素吗?
页: [1]
查看完整版本: 类型后面加个**是什么