|
楼主
查看: 5857回复: 2
发表于 2020-6-9 08:47:28
只看该作者
本帖最后由 secret 于 2020-6-9 09:37 编辑
这次我将分享 C 语言运算符优先级存在,希望同学们能够有所学习,如需要对照可自行截图或选择收藏查看
| | | | ".的优先级高于*
->操作符用于消除这个问题" | *p.f | "p所指对象的字段f
(*p).f" | "对p取f偏移,作为指针,然后进行解除引用操作
*(p.f)" | []高于* | int *ap[] | "ap是个指向int数组的指针
int (*ap)[]" | "ap是个元素为int指针的数组
int *(ap[])" | 函数()高于* | int *fp() | "fp是个函数指针,所指函数返回int
int(*fp)()" | "fp是个函数,返回int*
int *(fp())" | ==和!=高于位操作符 | (val&mask!=0) | (val&mask)!=0 | val&(mask!=0) | ==和!=高于赋值符 | c=getchar()!=EOF | (c=getchar())!=0 | c=(getchar()!=EOF) | 算术运算高于移位运算符 | msb<<4+lsb | (msb<<4)+ls | msb<<(4+lsb) | 逗号运算符在所有运算符中优先级最低 | i=1,2 | i=(1,2) | (i=1),2 |
|
|