c语言操作符(下)



目录

​编辑

逗号表达式

下标访问[]

函数调⽤()

sizeof

结构成员访问操作符

结构体

结构体声明

[直接访问 .成员名](#直接访问 .成员名)

[间接访问 结构体指针->成员名](#间接访问 结构体指针->成员名)


逗号表达式

exp1, exp2, exp3, ...expN

运算规则 :从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果。

如图c的值为逗号表达式中b=a+1的结果。

下标访问[]

\] 下标引⽤操作符 **操作数:⼀个数组名 + ⼀个索引值** int arr\[10\]; arr\[6\] = 10; 例子中\[ \]的两个操作数是arr和6 ## 函数调⽤() 函数调⽤操作符 接受**⼀个** 或者**多个操作数** :**第⼀个操作数是函数名** ,剩余的操作数就是传递给函数的**参数**。 ## sizeof sizeof是操作符,不是函数 如图,使用sizeof可以不加() ![](https://file.jishuzhan.net/article/1758678234527961089/17cdf000ce7e8206ee2c9f05ca7db500.webp) ## 结构成员访问操作符 ### 结构体 结构体为自定义类型,用来描述复杂对象,构成结构体的每个成员可以是不同的变量类型,如标量、指针、数组等。 #### 结构体声明 struct tag { member - list;//成员列表,可以1个或多个成员 }variable - list;//变量列表 ### 直接访问 .成员名 如图初始化结构体**stu** 使用**直接** 结构体访问操作符**.成员名**可以不按照顺序初始化 打印结构体成员内容: **结构体变量.成员** ![](https://file.jishuzhan.net/article/1758678234527961089/449a72dbea3662b2250e44c2be36a107.webp) ### 间接访问 结构体指针-\>成员名 打印结构体成员内容: **结构体指针-\>成员** ![](https://file.jishuzhan.net/article/1758678234527961089/a5edca4796b8542e93514f1a511d94a5.webp) ## 操作符的属性:优先级、结合性 优先级:**相邻** 操作符,**优先级高的先执行。** 结合性:当**优先级一样** 时,**大部分是左结合**(从左向右执行) • 圆括号( () ) • ⾃增运算符( ++ ),⾃减运算符( -- ) • 单⽬运算符( + 和 - ) • 乘法( \* ),除法( / ) • 加法( + ),减法( - ) • 关系运算符( \< 、 \> 等) • 赋值运算符( = ) 由于**圆括号的优先级最⾼**,可以使⽤它改变其他运算符的优先级。 ## **整形提升** ### **意义** **方便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

相关推荐
陌路208 分钟前
C语言基础入门阶段
c语言
胖咕噜的稞达鸭24 分钟前
二叉树搜索树插入,查找,删除,Key/Value二叉搜索树场景应用+源码实现
c语言·数据结构·c++·算法·gitee
_extraordinary_24 分钟前
Java Spring配置
java·开发语言·spring
进击的大海贼43 分钟前
QT-C++ 自定义加工统计通用模块
开发语言·c++·qt
Rhys..44 分钟前
JS - npm init
开发语言·javascript·npm
newxtc1 小时前
【 广州产权交易所-注册安全分析报告-无验证方式导致安全隐患】
开发语言·人工智能·selenium·安全·yolo
兩尛1 小时前
java八股-操作系统
java·开发语言
wjs20241 小时前
SQL 日期处理指南
开发语言
川石课堂软件测试1 小时前
CSS中常用的几种定位。
开发语言·css·python·网络协议·http·html·pytest
友友马1 小时前
『 QT 』QT信号机制深度解析
开发语言·qt