C语⾔中点操作符(.)和箭头操作符(-)
C语⾔中点操作符(.)和箭头操作符(->)
点说语法不太准确,许多都称该之为点运算符/操作符,箭头运算符/操作符。但是OC中叫点语法,感觉理解起来还蛮舒服。毕竟基础的C操作符中是
相同点
  两个都是⼆元操作符,其有操作符是成员的名称。
不同点
   点操作符左边的操作数是⼀个“结果为结构”的表达式;
   箭头操作符左边的操作数是⼀个指向结构的指针。 
优先级运算符名称或含义使⽤形式结合⽅向说明
1[]数组下标数组名[常量表达式]
左到右()圆括号
(表达式)
函数名(形参表)
.成员选择(对象)对象.成员名
->成员选择(指针)对象指针->成员名
2-负号运算符-表达式
右到左
单⽬运算符(类型)强制类型转换(数据类型)表达式
++⾃增运算符
++变量名
变量名++
单⽬运算符--⾃减运算符
-
-变量名
变量名--
三目条件运算符?:的含义单⽬运算符*取值运算符*指针变量单⽬运算符&取地址运算符&变量名单⽬运算符!逻辑⾮运算符!表达式单⽬运算符~按位取反运算符~表达式单⽬运算符sizeof长度运算符sizeof(表达式)
3/除表达式 / 表达式
左到右
双⽬运算符*乘表达式*表达式双⽬运算符%余数(取模)整型表达式%整型表达式双⽬运算符
4+加表达式+表达式
左到右
双⽬运算符-减表达式-表达式双⽬运算符
5<<;左移变量<<;表达式
左到右
双⽬运算符>>右移变量>>表达式双⽬运算符
6>⼤于表达式>表达式
左到右
双⽬运算符>=⼤于等于表达式>=表达式双⽬运算符<⼩于表达式<;表达式双⽬运算符<=⼩于等于表达式<=表达式双⽬运算符
7==等于表达式==表达式
左到右
双⽬运算符!=不等于表达式!= 表达式双⽬运算符
8&按位与表达式&表达式左到右双⽬运算符9^按位异或表达式^表达式左到右双⽬运算符10|按位或表达式|表达式左到右双⽬运算符11&&逻辑与表达式&&表达式左到右双⽬运算符
12||逻辑或表达式||表达式左到右双⽬运算符13?:条件运算符表达式1? 表达式2: 表达式3右到左三⽬运算符=赋值运算符变量=表达式
/
=除后赋值变量/=表达式
*=乘后赋值变量*=表达式
%=取模后赋值变量%=表达式
14%=取模后赋值变量%=表达式
右到左+=加后赋值变量+=表达式
-=减后赋值变量-=表达式
<<=左移后赋值变量<<=表达式
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15,逗号运算符表达式,表达式,…左到右