设为首页 加入收藏

TOP

结构体的(.)操作符和(->)操作符区别
2023-07-23 13:29:04 】 浏览:20
Tags:符和 -> 符区别

一、结构体的 . 操作符
二、结构体的 -> 操作符
三、点操作符的优先性和结合性
四、总结

一、结构体的 .操作符

1.结构体成员的直接访问:结构体变量的成员是通过操作符 . 访问的。

二、结构体的->操作符

1.结构体成员的间接访问:当我们拥有一个 指向结构体的指针 ,我们访问这个结构的成员的方式是 对指针执行间接访问操作
然后再通过 点操作符 访问其成员。但是 点操作符 的优先级大于 间接访问操作符,因此需要使用括号,确保间接访问先进行。
即访问指向结构体的指针需要通过间接访问来进行

例子:

struct complex
{  float f;};
void func(struct conmplex* cp);

函数可以使用如下表达式来进行访问 f
(* cp).f ———— 即通过此方式来进行访问结构体中的成员f

对指针进行 间接访问 将访问结构体,再用点操作符访问其成员。
由于该概念不是很方便,于是C语言提供了一个更为方便的操作符来完成这项工作———— ->操作符(也成箭头操作符)
和点操作符一样,箭头操作符接收两个操作数,但左操作数必须是一个指向结构体的指针
cp->f 等同于 (* cp).fs

三.点操作符的优先性和结合性:

从下表中我们可以看出其优先性是和[]相同的,结合性是从左到右的。

struct simple{
  int a;
  char b;
  float c;
};
 struct complex{
   struct simple s;
   struct simple sa[10];
 };

于是当如下使用该操作符时:
(comp.s).a 等同于 comp.s.a
((comp.sa)[4]).c 等同于 cmp.sa[4].c

四、总结

访问结构体成员时,我们采用直接访问的方式进行访问,即使用 点操作符 进行访问,
访问结构体指针时,我们采用的是间接访问的方式进行访问,即使用 箭头操作符进行访问。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇《程序员的自我修养》学习笔记—.. 下一篇OpenGL ES 2.0 和 3.0区别

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目