[C]成员运算符"."和间接成员运算符"->"浅析

来源:互联网 发布:美国邮箱数据出售 编辑:程序博客网 时间:2024/06/05 19:04

成员运算符: .

成员运算符一般和结构或者联合名一起使用,指定结构或者联合中的某个成员。

举个栗子:

如果Ronz是一个结构的名称,linux是这个结构模板指定的一个成员名。

1 struct{                 //匿名结构2   int linux;3   char windows[MAX];    //假设MAX已被定义 #define MAX 104 }Ronz;

如果我想要标识结构模板中的成员linux。我就可以这样用:Ronz.linux。

如果我觉得它可怜,想给它一个值的话:Ronz.linux=7。

可是我觉得标识linux还是不够爽,还有windows在等着我呢,所以我还可以这么来:Ronz.windows。

总之,需要用到哪个就可以通过成员运算符"."标识哪个。

 

间接成员运算符->

间接成员运算符和指向结构或者联合的指针一起使用,标识结构或者联合中的某个成员。

再次举个栗子:

如果ptd是指向结构的指针,linux是这个结构模板指定的一个成员,Ronz依然死皮赖脸地做结构的名称。

1  struct {                //匿名结构2    int linux;3    char windows[MAX];  //假设MAX已经被定义 #define MAX 104  }Ronz,*ptd;5  ptd=&Ronz;

这一次我又想标识linux,但是总请Ronz老人家出山也不好意思,于是还可以这么来:ptd->linux。

好歹给人家一个值吧:ptd->linux=7(当然可以直接赋值)。

ptd->linux  Ronz.linux  (*ptd).linux  //三个等效小知识:"."优先级高于"*"
原创粉丝点击