结构体成员访问(.和->):对于结构体变量,使用.访问成员;对于指向结构体的指针,使用->访问成员。例如,有结构体struct Point {int x; int y;}; struct Point p; p.x访问结构体p的x成员。如果是struct Point* ptr; ptr->x访问指针ptr所指结构体的x成员。
次高优先级
一元运算符(++、--、+、-、*、&、~、!)
自增(++)和自减(--)运算符:分为前缀和后缀形式。前缀形式(如++i)是先自增 / 减然后再使用变量的值;后缀形式(如i++)是先使用变量的值然后再自增 / 减。例如,int i = 3; int a = ++i;此时a的值为 4,i的值也为 4。而int i = 3; int b = i++;此时b的值为 3,i的值为 4。
正号(+)和负号(-)运算符:用于表示正数和负数。例如,int a = -3;表示a是负数 3。
取地址(&)和间接访问(*)运算符:&用于获取变量的地址,*用于访问指针所指向的变量。例如,int a = 5; int* ptr = &a;,这里&a获取a的地址赋值给ptr,然后*ptr可以访问ptr所指向的变量a。
按位取反(~)和逻辑非(!)运算符:~是对整数进行按位取反操作,!是对布尔值进行取反操作。例如,对于整数int a = 3;(二进制为00000011),~a得到11111100(在有符号整数表示下是 - 4)。对于布尔值bool b = true;,!b得到false。
算术运算符(从高到低)
乘法(*)、除法(/)、取余(%):按照数学中的运算顺序进行。例如,int a = 10 / 2 * 3;先计算除法10/2 = 5,再计算乘法5 * 3 = 15。取余运算符%用于计算除法的余数,如int b = 7 % 3;得到 1。