C语言中struct 结构体 成员的访问问题?

像一个这样的结构体:typedefstruct{void*OSAddr;void*OSFreeList;INT32UOSBlkSize;INT32UOSNBlks;INT... 像一个这样的结构体:
typedef struct {
void *OSAddr;
void *OSFreeList;
INT32U OSBlkSize;
INT32U OSNBlks;
INT32U OSNFree;
INT32U OSNUsed;
} OS_MEM_DATA;

访问(使用)的时候 看到有两种写法
一个是x=a.b ; // 中间是点
一个是x=a->b; // ->运算符
有时候 也是随便用 有时候靠编译器报错 来更正 想弄清楚

Q 想问的是 :这两种运算符 · 和-> 有啥区别
ps: 因为百度搜不了 这两个符号
展开
 我来答
wanglixin1001
推荐于2017-09-14 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:880万
展开全部
这主要得看a是什么类型,如果a是结构体变量(比如OS_MEM_DATA a),那么就是a.b。
如果是结构体指针变量(如OS_MEM_DATA *a),那么就是a->b。
a->b等价于(*a).b。
笃侠6A
2012-10-27 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3262万
展开全部
a.b —— a是结构体变量名
a->b—— a是指向结构体变量的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
suiyue_2009
2012-10-27 · TA获得超过846个赞
知道小有建树答主
回答量:1248
采纳率:0%
帮助的人:882万
展开全部
指针就用-> 非指针就用.

例子:
OS_MEM_DATA *s;//这里需要给s明确的指向
s->。。。。。

OS_MEM_DATA s;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式