struct _Structure{
int member;
};
结构指针
指向结构的指针
以上2个短语之间是否有任何区别
在我看来,这两个短语代表不同的指针实例化
结构指针
typedef struct _Structure *SP;
SP sp;
指向结构的指针
typedef struct _Structure PS;
PS *ps;
虽然关于_Structure的数据成员访问都有相同的代码片段
sp->member;
AND
ps->member
如果两个短语都相同,那么请注意!
除此之外,我们还需要
typedef struct _Structure *SP;
SP *sp;
//note: here 'sp' is like double pointer
谢谢, 阿米特
答案 0 :(得分:1)
如果展开typedefs
,则sp
和ps
都属于struct _Structure *
类型。在这方面,他们之间绝对没有区别。
显然,typedefs
本身(SP
和PS
)具有不同的语义,因为一个是指针,另一个不是。
在上一个示例中,sp
不是类似的双精度型,是双指针。双指针在某些上下文中很有用,但使用频率低于单指针。
答案 1 :(得分:0)
两个表达式结构指针和结构指针之间没有区别。
sp
和ps
变量之间没有区别。两者都是结构的指针。使用*
或变量声明中的typedef
没有任何区别。
答案 2 :(得分:0)
没有区别和更多
typedef struct _Structure *SP;
SP *sp;
//note: here 'sp' is like double pointer
你不需要这个。如果你这样做,你就会有一个指向指针的指针。
答案 3 :(得分:0)
在我看来,这两个短语都是等同的。两者都需要实现struct。它只是typedef
指针的编程首选项,并声明它或声明指向struct的指针。