C语言基础之运算符与表达式

表达式

  1. 由操作符和操作数组成
  2. 最简的的表达式只含一个操作数,即单一的一个数就是一个表达式
  3. 作用:放在赋值语句右侧、传参、做判断条件
  4. 表达式的返回值有逻辑性质,非零则为真,否则为假。
  5. 表达式的返回是有类型的,却决于变量类型和常量类型及其运算。

1)赋值运算符与赋值表达式

  1. 赋值运算符:=
  2. 作用:将数据、表达式的值、函数返回值等值赋给一个变量
  3. 左值:符号左侧的部分
  4. 右值:符号右侧的部分
/*在定义时赋值称为对变量初始化*/
类型 变量名 = 常数;
类型 变量名 = 表达式;
类型 变量名 = 函数返回值;
/*一般赋值*/
变量定义语句
变量名 = 常数;
变量名 = 表达式;
变量名 = 函数返回值;
  1. 自动类型转换(隐性):当赋值表达式左值和右值的数据类型不同时,系统自动将右值的数据类型转换成与左值相同的数据类型。
    • 低级别类型赋给高级别类型,将低级别的升级,造成精度提高,数据信息不会丢失。
    • 高级别赋给低级别时,将数据降级别表示,可能发生数据信息丢失,系统会警告,但合法。
  2. 强制类型转换(显性):当左右值类型不同时,系统根据不同情况自动转换,但编译器会发出警告。使用强制类型转换告知编译器,将不产生警告,即程序员以默许。
/*形式如下*/
(类型名)(表达式)
//例如
int a= int(1.0);
int b;
b = int( 2 / 3 )
自动
自动
short
unsigned
long
float
double
char
int
  1. 复合赋值运算
运算符举例等价
+=a += ba= a + b
-=a -= ba= a - b
*=a *= ba= a * b
/=a /= ba= a / b
%=a %= ba= a % b
&=a &= ba= a & b
|=a |= ba= a | b
^=a ^= ba= a ^ b
<<=a <<= ba= a << b
>>=a >>= ba= a >> b

2)算术运算符与算术表达式

符号功能
+单目,取正值
-单目,取负值
*乘法
/除法(两整数相除时取整)
%取模(两边为整数,相除取余数)
+加法
-减法
  1. 单目正运算不会将一个负值表达式改为正,其存在只是为了与单目负运算符配对。
int a;
a = -1; /*先单目负运算,再赋值*/
prinf("%d\n",a)
prinf("%d\n",+a)
prinf("%d\n",-a)
-1
-1
1

3)关系运算符与关系表达式

符号功能
>单目,取正值
>=单目,取负值
<乘法
<=除法(两整数相除时取整)
==取模(两边为整数,相除取余数)
!=加法

4)逻辑运算符与逻辑表达式

符号功能
&&双目,逻辑与
||双目,逻辑或
!单目,逻辑非

5)位逻辑运算符与位逻辑表达式

符号功能类型
&位逻辑与双目
|位逻辑或双目
^位逻辑双目
~取补单 目
  1. 位运算:对操作数的二进制形式进行相应运算
  2. 以后细讲

6)逗号运算符与逗号表达式

/*形式*/
表达式1,表达式2,...,表达式n
  1. 求解表达式1
  2. 再求解表达式2
  3. 一直到表达式n
  4. 整个表达式的值为表达式n的值
  5. 常用在定义多个变量
int a, b, c, d;
int e=1, f=2, g=3;

注意区别:

num=1+2, 3+4, 5+6;
printf("%d\n",num);
num=(1+2, 3+4, 5+6);
printf("%d\n",num);
3
11

7)自增自减运算符

  1. 自增++;自减–
  2. 即对变量作加1和减1操作
  3. 分前缀和后缀

8)优先级

优先级运算符
1()、[]、-> 、.
2!、~、++、–、+、-、*、&、sizeof
3*、/、%
4+、-
5<<、>>
6<、<=、>、>=
7==、!=
8&
9^
10&&
11||
12?:
13=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=
14,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值