c程序设计 运算符与结合性

mac2026-04-03  5

1初等运算符 (()圆括号),([]下标运算符),(->指向结构体成员运算符), (.结构体成员运算符) 2**(!)逻辑非运算符,自右向左** 单目运算符(~按位取反运算符)(++自增运算符)(–自减运算符)(-负号运算符)(类型:类型运算符)(*指针运算符)(&取地址运算符)(sizeof长度运算符)

双目运算符如下:

3算术运算符先乘(*)除(/)求余(%)后加(+)减(-) 4关系运算符先(< <= > >=)后(==,!=) 5(&按位与运算符)—>(^按位异地运算符)—>(|按位或运算符) 6**(&&逻辑与运算符)—>(||逻辑或运算符) (表达式1&&表达式2) 当表达式1不成立时,逻辑值将直接返回0,而跳过表达式2,即使表达式2有重要的运算也不会执行 (表达式1||表达式2) 当表达式1成立时,逻辑值将直接返回1,而跳过表达式2,即使表达式2有重要的运算也不会执行

7条件运算符,三目运算符,自右向左( ? :) z=x>y?x:y; 如果x>y,把x的值赋给z; 如果x<y, 把y的值赋给z; 8赋值运算符,自右向左(= += -= *= /= %= >>= <<= &= ^= |=) 8**逗号运算符(,)顺序求值运算符 int a=1,b=2,c=3; a=(b,c+=5); printf("%d\t%d\t%d\t",a,b.c); 结果输出8 2 8

注释:

(1)同一优先级的运算符,运算次序由结合方向决定 3*5/4<>先乘后除 -i++<>-(i++) 不同运算符要求有不同的运算对象个数,如(+)(-)为双目运算符,要求在运算符看、两侧各有一个运算对象(3+5,5-3)(++ --)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(-a,i++)

最新回复(0)