帮解读一下这个类型定义typedef const struct SLObjectItf_ * const * SLObjectItf;

韩曙亮
2023年度博客之星评选 TOP 1
博客专家认证
2018-01-13 10:48:15

/* Forward declaration for the object interface */
struct SLObjectItf_;

typedef const struct SLObjectItf_ * const * SLObjectItf;


哪位大神给帮忙解读一下这个定义
...全文
414 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2018-01-13
  • 打赏
  • 举报
回复
我觉的理解这种代码,第一步先把const拿掉,得到一类型,然后加上const确定只读位置,另外const确定它右边第一项为只读
韩曙亮 2018-01-13
  • 打赏
  • 举报
回复
引用 1 楼 hdt 的回复:
给你段代码 int c=10; const int *b=&c; const int * const * aa = &b;
typedef const struct SLObjectItf_ * const * SLObjectItf; 意思是 将 const struct SLObjectItf_ * const * 重名名为 SLObjectItf , 其指针地址与指向的内容都是常量 是吗 ?
真相重于对错 2018-01-13
  • 打赏
  • 举报
回复
给你段代码 int c=10; const int *b=&c; const int * const * aa = &b;
真相重于对错 2018-01-13
  • 打赏
  • 举报
回复
引用 4 楼 han1202012 的回复:
[quote=引用 3 楼 hdt 的回复:] 我觉的理解这种代码,第一步先把const拿掉,得到一类型,然后加上const确定只读位置,另外const确定它右边第一项为只读
typedef const struct SLObjectItf_ * const * SLObjectItf; const struct SLObjectItf_ * const * 去掉 const 是 struct SLObjectItf_ ** 二维指针 两个维度的数据 都是常量 将一个 struct SLObjectItf_ 结构体的 二维指针 类型定义为 SLObjectItf 类型 , 这么理解对吗 [/quote] 不完全对,第一级指针是常量,且指向一个const struct ... 还是让代码说话
int a=0;
	const int *b= &a;
	const int *const* c= &b;
	int d=100;
	*c = &d; //error
	int *e = new int(10);
	c=&e;//ok
韩曙亮 2018-01-13
  • 打赏
  • 举报
回复
引用 3 楼 hdt 的回复:
我觉的理解这种代码,第一步先把const拿掉,得到一类型,然后加上const确定只读位置,另外const确定它右边第一项为只读
差不多懂了 非常感谢 结贴分数送上
韩曙亮 2018-01-13
  • 打赏
  • 举报
回复
引用 3 楼 hdt 的回复:
我觉的理解这种代码,第一步先把const拿掉,得到一类型,然后加上const确定只读位置,另外const确定它右边第一项为只读
typedef const struct SLObjectItf_ * const * SLObjectItf; const struct SLObjectItf_ * const * 去掉 const 是 struct SLObjectItf_ ** 二维指针 两个维度的数据 都是常量 将一个 struct SLObjectItf_ 结构体的 二维指针 类型定义为 SLObjectItf 类型 , 这么理解对吗

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧