目录
[直接访问 .成员名](#直接访问 .成员名)
[间接访问 结构体指针->成员名](#间接访问 结构体指针->成员名)
逗号表达式
exp1, exp2, exp3, ...expN
运算规则 :从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果。
如图c的值为逗号表达式中b=a+1的结果。

下标访问[]
\] 下标引⽤操作符 **操作数:⼀个数组名 + ⼀个索引值** int arr\[10\]; arr\[6\] = 10; 例子中\[ \]的两个操作数是arr和6 ## 函数调⽤() 函数调⽤操作符 接受**⼀个** 或者**多个操作数** :**第⼀个操作数是函数名** ,剩余的操作数就是传递给函数的**参数**。 ## sizeof sizeof是操作符,不是函数 如图,使用sizeof可以不加()  ## 结构成员访问操作符 ### 结构体 结构体为自定义类型,用来描述复杂对象,构成结构体的每个成员可以是不同的变量类型,如标量、指针、数组等。 #### 结构体声明 struct tag { member - list;//成员列表,可以1个或多个成员 }variable - list;//变量列表 ### 直接访问 .成员名 如图初始化结构体**stu** 使用**直接** 结构体访问操作符**.成员名**可以不按照顺序初始化 打印结构体成员内容: **结构体变量.成员**  ### 间接访问 结构体指针-\>成员名 打印结构体成员内容: **结构体指针-\>成员**  ## 操作符的属性:优先级、结合性 优先级:**相邻** 操作符,**优先级高的先执行。** 结合性:当**优先级一样** 时,**大部分是左结合**(从左向右执行) • 圆括号( () ) • ⾃增运算符( ++ ),⾃减运算符( -- ) • 单⽬运算符( + 和 - ) • 乘法( \* ),除法( / ) • 加法( + ),减法( - ) • 关系运算符( \< 、 \> 等) • 赋值运算符( = ) 由于**圆括号的优先级最⾼**,可以使⽤它改变其他运算符的优先级。 ## **整形提升** ### **意义** **方便cpu运行计算,** 因为cpu一般是计算**int** 的字节长度。因此**两个char或short** 类型相加都必须先转换为**int或unsigned int,**然后才能到cpu中计算 ### 方法 1.**有符号整数** 提升按照变量的数据类型的**符号位**来提升 2.**无符号整数** 提升,高位**补0** #### **举例解释** char类型的取值范围-128\~127 char占用1个字节,1字节=8bit位 vs中char默认为有符号的char 000000000000000000000000**01111101** char c1 = 125; **01111101** c1 发生截断 char c2 = 10; 000000000000000000000000**00001010** 发生截断 **00001010** c2 char c3 = c1 + c2; 整型提升 000000000000000000000000**01111101** c1 000000000000000000000000**00001010** c2 000000000000000000000000**10000111** c3 发生截断 **10000111** c3 整型提升 111111111111111111111111**10000111** c3的补码 100000000000000000000000**01111000** c3的反码 100000000000000000000000**01111001** c3的原码 -121