在C语言中,我们学习过:
- 算数运算符( 、-、*、/、%)
- 自增自减运算符( 、--)
- 赋值运算符(=)
- 关系运算符(>、< 、>=、<=、!=、==)
- 逻辑运算符(&&、||、!)
我们再简单复习一下!
运算符一、什么是表达式
用运算符和操作数连接起来的式子,包括:简单的表达式和复杂表达式
二、什么是语句以;结尾的表达式就是一个语句
C语句 :每一个语句都是;作为结束
空语句:什么内容也没有直接以分号结束;
语句块:用花括号括起来的{}
三、运算符1、赋值运算符(=)变量名 = 常量(变量/表达式)
左值:出现在赋值语句的左边 左值(常量不能够作为左值)
右值:出现在赋值语句的右边 右值
初始化:在声明一个变量的时候,为他赋一个初始值
赋值:给定一个值
A、自动类型转换转换规则:
如果把较短的数值类型变量的值赋值给比较长的数值类型的变量,那么较短的数值类型变量的值就会升级表示为较长的数据类型,数据信息不会丢失。
如果较长的数值类型的变量赋值给较短的数值类型变量,那么数据就会降低级别表示,并且数据超过较短的数值类型的可以表示范围,就会发生数据截断。
B、强制类型转化如果数据类型不同,就会根据不同情况自动进行类型转化,编译器会提示警告的信息,如果使用强制类型转化,编译器不会发生警告提示。
一般形式:(类型名)(表达式)
2、算数运算符
单目运算符: 、- 、 、--
双目运算符: - * / %(取模运算符 求余数)(两边的操作数只能是整数,余数符号根据被除数来确定)
单目运算符 -- -
表达式 在前 先自增 在赋值
在后 先赋值 在自增
优先级,结合性
* /
-
=
3、关系运算符用于判断两个操作数的大小关系(返回真值 或 假值)
0表示假值 非零表示真(-1,-2,1,2)用1表示真
>
>=
<
<=
==
!=
4、逻辑运算符&& 逻辑与 两个为真 为真,有一个为假,为假
|| 逻辑或 有一个为真 为真,
! 逻辑非 是真 为假 ,是假,为真
短路现象
if ((a=0) && (b=45))
{
//为假就不会执行,为真才执行
printf("真的\n");
}
else
{
//为假
printf("假的\n");
printf("a=%d,b=%d\n",a,b);
}
if ((a=45) || (b=2))
{
//为假就不会执行,为真才执行
printf("真的\n");
printf("a=%d,b=%d\n",a,b);//a=45,b=0
}
else
{
//为假
printf("假的\n");
printf("a=%d,b=%d\n",a,b);
}
?:
表达式 ? 语句1 : 语句2
如果表达式为真,就执行语句1
为假,执行语句2
嵌套:1 > 2 ? printf("是真的\n") : 2 > 3?printf("2 > 3\n") :printf("2 < 3 \n");
//if else语句
如果
....
否则
....
6、位运算符
- & 按位与
- | 按位或
- ^ 按位异或 相同为0,不同为1
- ~ 按位取反
- 源码
- 反码
- 补码
- 正数:三码合一
- 负数:反码:符号位不变,其余位按位取反
- 补码:符号位不变,反码 1
可以用逗号将多个表达式分隔开,整个表达式的值是最后一个表达式的值。
8、复合运算符= 、-=、*= 、/=、%= 、^= 、|=等等
由于知识语法基本没有发生变化,本部分内容我们将重点用实际程序演示的方式进行
拆分位数,我们可以C 如下实现:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;//待判断的这个三位数
intge;//三位数中的个位
intshi;//三位数中的十位
intbai;//三位数中的百位
cin>>a;
ge=a;
shi=a0/10;
bai=a/100;
cout<<ge<<""<<shi<<""<<bai<<endl;
return0;
}
#include<iostream>
usingnamespacestd;
intmain()
{
intx,y;
cin>>x;
if(x<1)
{
y=x;
}
elseif(1<=x&&x<10)
{
y=2*x-1;
}
else
{
y=3*x-11;
}
cout<<y<<endl;
return0;
}
运行结果如下:
大家依旧注意逻辑运算符&&的使用场景,千万不要出现类似1<=x<10的连写写法!
对编程感兴趣的小伙伴可以点击下方了解更多,可以免费得到视频资料和在线电子书籍噢~
,