C语言从零开始3

简介: 快速学习C语言从零开始3

运算符与表达式

C语言的各种运算都是在表达式中完成的。表达式是由运算符将各种类型的变量,常量,函数等运算对象 按一定的语法规则连接而成的式子,它描述了一个具体的运算过程。


运算符的优先级和结核性

优先级:即在执行表达式时,各运算运行的先后顺序

结核性:即同一优先级运算的方向


算术运算符和算术表达式

算数运算符
++ 自加 优先级2
-- 自减 优先级 2  右结合性 
-  负号 优先级2
* 乘号 优先级3
/ 除号 优先级3   左结合性
% 求余 优先级三
+ 加号 优先级4
                 左结合性
- 减号 优先级4

说明:求余运算的数据必须都是整形数据,且余数的符号与只分子的符号一致

算术表达式

1.由算术运算符,括弧,内部函数以及数据组成的式子

2.算术表达式中不能出现C语言字符集意外的字符

3.没有乘方运算符,要计算a的三次方,aaa或pow(a,3)


赋值表达式和赋值运算符

简单的赋值运算符记为“=”,用=连接的式子称为赋值表达式
赋值: 

实型赋值整型,舍弃小数部分 整型赋值实型,整数部分不变,增加小数部分

字符型赋值整型,由于字符型为一个字节,而整型位两个字节,故将字符型的ASCLL的码 放到整型的后八位中,前八位位0 整型赋值字符型,会出现数据流失

复合算数赋值

+=

-+

*=

/=

优先级14 右结合性


关系运算符与逻辑运算符

关系运算符
<      小于
<=     小于或等于           6级               左结合性
>      大于
>=     大于或等于
==     等于        七级              左结合性
!=    不等于

关系表达式的值是“真”和“假”,用“1”和“0”表示


逻辑运算符和逻辑表达式

逻辑运算符
! 逻辑取反,操作数为0,结果为1;操作数为1,结果为0         2级    右结合性
&&  逻辑与,两操作数都为非0时,结果为1,否则为0;         11级        左结合性
||  逻辑或,当两操作数都为0时,结果为0;其他情况都去1       12级         左结合性
逻辑表达式具有短路特性


逗号运算符(优先级最低)

“,不仅是一个分隔符还是一个表达式

表达式1,表达式2,表达式3,…表达式n

其求值过程是从左到右以此计算表达式1,2,3…n,最好依照表达式n的值作为整个逗号表达式的值


位运算符

一个字节=8位(bit)

位运算符
~ 取反 2级

注意:按位取反是依照补码取反

如:8

二进制: 00001000

补码 : 00001000

按位取反 : 11110111

转换为原码:

转换为反码:10001000

转换为原码:10001001=>10进制-9

负数同理

& 按位与 8级

参与运算的对应位均为1其结果位1,否则为0

image.jpeg

按位或

参加运算的两个运算量相对应位中有一个位1,结果位1,否则位0

20191101114752175.jpg

~按位异或

参加运算的两运算量相异时为1,反之为0

20191101114752175.jpg

<<左移运算

把”<<“左边的运算数的各二进制位全部左移,由”<<“右边的数指定移动的位数,并且高位丢弃,低位补0

2db526edcf35c4aac0e2c536fabd44e.png

>>右移运算

把”>>‘左边的二进制全部右移,由“>>”右边的数字指定移动的位数。对于有符号位,右移时,符号位将随之移动。当为正数时,最高位补零。当为负数,最高位补0或补1取决于编译系统的规定

image.png

复合运算符

&=

<<=

>>=

|=

^=


相关文章
|
7月前
|
存储 编译器 C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
87 0
|
7月前
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
145 0
|
C语言
入门学习C语言的一些建议
入门学习C语言的一些建议
|
C语言
【C语言入门】
【C语言入门】
90 0
|
5月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
119 2
|
6月前
|
存储 程序员 Go
|
6月前
|
存储 机器学习/深度学习 编译器
C语言基础简单教程
C语言基础简单教程
|
6月前
|
存储 人工智能 Java
|
7月前
|
存储 安全 程序员
C语言:深入探索与实践
这篇文章探讨了C语言的关键特性和广泛应用。C语言以其结构化编程、指针操作、中间级语言特性和出色的可移植性,在操作系统、嵌入式系统、游戏开发及应用程序等领域中占据重要地位。文中通过代码示例展示了C语言的基本用法,如输入输出、数组与循环以及函数应用。尽管C语言在内存管理和错误处理上存在挑战,但它仍然是编程领域不可或缺的工具,随着技术进步,其影响力预计将持续。