打印

-->是 c语言的一个运算符吗?

[复制链接]
734|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pjzmj2012|  楼主 | 2018-12-21 10:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
tyw| | 2018-12-21 11:32 | 只看该作者
本帖最后由 tyw 于 2018-12-21 11:39 编辑



成员运算符: .
成员运算符一般和结构或者联合名一起使用,指定结构或者联合中的某个成员。
举个栗子:
如果Ronz是一个结构的名称,linux是这个结构模板指定的一个成员名。

1 struct{                 //匿名结构
2   int linux;
3   char windows[MAX];    //假设MAX已被定义 #define MAX 10
4 }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 10
4  }Ronz,*ptd;
5  ptd=&Ronz;
这一次我又想标识linux,但是总请Ronz老人家出山也不好意思,于是还可以这么来:ptd->linux。

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

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


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

131

帖子

1

粉丝