前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言之结构体中“ . ”和“ -> ”的区别

C语言之结构体中“ . ”和“ -> ”的区别

原创
作者头像
好派笔记
修改2021-09-17 18:09:47
6.4K0
修改2021-09-17 18:09:47
举报
文章被收录于专栏:好派笔记

相同点:两个操作符都是二元操作符,且其有操作符是结构体成员的名称。

不同点:“ . ”操作符左边的操作数是一个“结构体”的表达式,而“ -> ”操作符左边的操作数是一个指向结构体的指针。

例:

typedef struct

{

int num;

float score;

char name[10];

}STUDENT;

STUDENT temp;

STUDENT *p = &temp;

在这里temp.score代表的是结构体temp里的成员score。

p->score代表指向temp结构体成员score的指针。

为了使用方便和直观,C语言允许把(*temp).score用p->score来替换。也就是p->score等价与(*temp).score。

所以在结构体中“ . ”和“ -> ”的用法相似,但是并不等价。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档