学习笔记——C语言基本概念&运算符——(2)

目录

一、运算符

1.1 赋值运算符

1.2 算数运算符 

1.3 关系运算符

1.5 位运算符

1.6 自增自减运算符

1.7  复合运算符

1.8 逗号运算符

1.9 三目运算符

1.10 sizeof 运算符

附录:运算符优先性表


一、运算符

1>.按照操作数目分类: 单目运算符, 双目运算符, 三目运算符。
2>.按照功能分类: 赋值运算符, 算数运算符, 关系运算符, 逻辑运算符, 位运算符(针对二进制数值), 自增自减运算符, 复合运算符, 逗号运算符, 问号运算符(三目运算符)。

1.1 赋值运算符

赋值运算符为:=

在c语言中,一个 “=” 是赋值运算符,两个“==”才是等于号的意思。

功能: 将等号右侧的内容赋值给等号左侧。

注意:使用赋值运算符时等号左边不能是常量。实例如图:1-1使用常量赋值。

图1-1使用常量赋值

自动类型转换:赋值运算符如果左右两侧类型不一致, 默认往等号左侧转; (小数转整数, 舍弃小数后面的内容)。

如图1-2 自动类型转换。

虽然不报错也不警告, 但是还是希望两边类型一致:
强制类型转换:格式: (数据类型)变量名
float b = 99.99;
a = (int)b; //a = 99 取整数部分;实例:如图1-3 强制转换。

1.2 算数运算符 

算数运算符:+   -    *     /    %(取余)

/  --> 除              结果是商
% --> 取余         结果是余数 (注意: 左右两侧都得是整数)

简单举个例子就是:

int num =10/3; //num = 3;

int a =10%3;      // a = 1

类型转换:自动类型转换:
+  -  *  /  左右两侧类型不一致, 默认往高精度转:
char ->int -> float ->double

1.3 关系运算符

关系运算符:>   >=   <   <=   ==   !=

运算结果: 只有 0(不成立) 和 1( 成立)


1.4 逻辑运算符 

逻辑运算符:&&  ||   &   | !

&& :逻辑与运算符

|| : 逻辑或运算符

& : 按位与运算符

| : 按位或运算符

!:逻辑非运算符


运算结果:只有0和1 (注:非0即真,也就是只要不是0的数都是真不局限于只能是1)

&&: 左右两侧都为真, 结果是 1, 否则是 0
||: 左右两侧任意一侧为真, 结果是 1, 否则是 0
表达式 1 && 表达式 2         结果
真                 真                 1
真                 假                 0
假                 真                 0
假                 假                 0

如果:&& :前面为假, 后面就不再运算;(注:计算机为了节省内存当出现假设的情况,后面内容不论真假均不计算)

表达式 1  ||  表达式 2           结果
真                 真                 1
真                 假                 1
假                 真                 1
假                 假                 0

如果:|| :前面为真, 后面就不再运算

!逻辑取反:
!0 = 1         !假 = 1
!1 = 0         !真 = 0

1.5 位运算符

位运算符:   &   |   ^   <<   >>   ~

&: 全 1 为 1, 否则为 0
数值 1   &     数值 2         结果
1                      1                 1
1                      0                 0
0                      1                 0
0                      0                 0


|: 见 1 为 1, 全 0 为 0
数值 1   |   数值 2         结果
1                 1                 1
1                 0                 1
0                 1                 1
0                 0                 0


^ : 相同为 0, 不同为 1
数值 1  ^  数值 2         结果
1                 1                 0
1                 0                 1
0                 1                 1
0                 0                 0

<< : 所有的位统统向左移动, 低位补 0
>> : 所有的位统统向右移动, 高位补 0

~: 按位取反: 0 变 1, 1 变 0

1.6 自增自减运算符

自增自减运算符:1.++ 自身 +1 2.--自身减一

实例说明:

int num = 100;
num++; num = num+1; //num=101
int num = 100;
++num; num = num+1; //num=101

注意:当前的式子中有其他运算
++在前, 先自身加 1, 再参与其他运算
++在后, 先参与其他运算, 再自身加 1

实例说明:

int a = 100;
int b = ++a;         // a = 101,b = 101;
int a = 100;
int b = a++;         // b = 100,a = 101

1.7  复合运算符

复合运算符 :+=;-=; *=; /=; %=; >>=; <<=; &=; ^=; |=

实例说明:

int num = 100;
num += 99;         //num = num + 99; num = 199
int num = 10;
num %= 3;         //num = num%3; num=1
int num = 10;
num *= 2 + 3;         //num = num * 5=50

(其他运算符同理即可)

1.8 逗号运算符

方式 1: 分隔作用
int a=0,b=0,c=0; // a:int b:int c:int
方式 2:
int a = -100;
int num =(0, 1, 2, a=3, 0, 66, 99);
num = 99; //依次赋值

如图 1-4 依次赋值。

1.9 三目运算符

格式:结果=(表达式 1)? (表达式 2): (表达式 3);
解释:

        先运算表达式 1, 表达式 1 为真, 就运行表达式 2, 整个三目运算符的结果就是表达式 2 的结果, 表达式 3 不再运算;
        先运算表达式 1, 表达式 1 为假, 就运行表达式 3, 整个三目运算符的结果就是表达式 3 的结果, 表达式 2 不再运算;

图1-5 三目运算符的使用

1.10 sizeof 运算符


功能: 专门用来求数据类型大小
格式 1: sizeof(数据类型);
long num = sizeof(int); //num = 4
格式 2: sizeof(变量名)
float a = 3.1415;
long num = sizeof(a); // num = 4

附录:运算符优先性表

链接: 运算符优先级表

提取码: ygwf

今天的c语言基础学习分享就到此为止了,有任何问题和发现博文出现的问题,欢迎来评论区指出。


 



 

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值