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

相关推荐
l1t1 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
再见晴天*_*2 小时前
SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
java·开发语言·intellij idea
l1t3 小时前
利用美团龙猫用libxml2编写XML转CSV文件C程序
xml·c语言·libxml2·解析器
lqjun08274 小时前
Qt程序单独运行报错问题
开发语言·qt
hdsoft_huge6 小时前
Java & Spring Boot常见异常全解析:原因、危害、处理与防范
java·开发语言·spring boot
风中的微尘6 小时前
39.网络流入门
开发语言·网络·c++·算法
未来之窗软件服务6 小时前
幽冥大陆(二)RDIFSDK 接口文档:布草洗涤厂高效运营的技术桥梁C#—东方仙盟
开发语言·c#·rdif·仙盟创梦ide·东方仙盟
小冯记录编程7 小时前
C++指针陷阱:高效背后的致命危险
开发语言·c++·visual studio
1uther7 小时前
Unity核心概念⑨:Screen
开发语言·游戏·unity·c#·游戏引擎
C_Liu_7 小时前
C++:类和对象(下)
开发语言·c++