快速打开并行终端(闭免浪费时间关闭Vi): ctrl+shift+t 按“1”“2”可快速切换终端
一、转义字符(续DAY2)
常用的以“\”开头的特殊字符
“\n”: 换行 “\t”:跳到下一个tab位置(空8格,有字符在前则包含其前字符凑够8格)
“\b”:退格,光标往前退一格 “\r”:回车,光标回到该行最前端
二、运算符和表达式
注意:①运算符的形式和作用 ②优先级 ③关于运算符的结合方向
表达式 : eg:1+2 语句:eg:1+2;(加了分号)
其中参与运算的值 (eg:1 . 2) 称为操作数。
单目运算符:实际被使用时需要1个操作数 双目运算符:实际被使用时需要2个操作数 以此类推。
1+2 式中1为左操作数 2为右操作数
任何表达式都有其数据类型!
2.1算术运算符
(1)“+” “-” “*” “/” “%”
优先级:“*” “/” “%” > “+” “-”
其中
“/”:取商 在int型中只取商结果整数部分,只要数据类型符合即可运算
eg:
int i=10,j=0;
printf(“%d”,i/j);
printf(“%d”,i);
编译器不报错,但运行后程序崩溃,且强行停止,后续程序不再运行!
“%”:取余 不可对浮点数操作(浮点型不可进行%运算)
%结果一定小于右操作数,且正负与左操数有关
%操作数必为int型或与int型兼容类型
[man random]:可进入程序员手册
附运算符和结合性表
三、变量初始化
赋值运算符:“=”
赋值:int i;
i = 1234; (赋初值)
或 int i=1234; // 称为对变量i的初始化
四、各类数值型数据间的混合运算
不同数据类型混合运算时要按如图表发生必转!(也被称为隐式转换)
显式转换(强制类型转换):(类型)→ 类型转换运算符
eg:将如下代码
int i = 2 , j = 3;
printf("%d\n" , i / j);
可转化为:
int i = 2 , j = 3;
printf("%f\n", (double)i / j);
即可将i强制转换成double类型数据与j进行运算,输出结果为浮点数类型。
五、赋值运算符和赋值表达式
对于“=”来说:
左值(left value):只能放在赋值运算符左边的值
右值(right value):只能放在赋值运算符右边的值
因此, 所有的变量被称为左值, 所有的常量被称为右值
临时变量:(匿名变量)
以 int i = 10;
int j = 20;
printf("%d/n",i + j);为例
在计算机中存储
00 |
00 |
00 |
0A |
00 |
00 |
00 |
14 |
00 |
00 |
00 |
1E |
i 值
注意:实际存储中 i 和 j 不一定连续存放
j 值
临时存放 i + j的值 此部分被称为临时变量,也叫做匿名变量
所有的临时变量都为右值而非左值!!!
关键字 const:为了说明i是一个只读变程序运行过程中,只能进行初始化,而不能赋值修改 此时i仍属于左值(检验方法,左值可被取地址,右值报错)
eg: int const i=100;和 const int i=100;意思一致
【locatiable】:可获得某变量在内存中的位置
【readable】:不能被取地址
5.2
自增:“++” 自减:“--” 二级,单目运算符 自右至左
以自增为例 两种形式:①“i++”:先用后加 ②“++i”:先加后用
前置++(++i)效率一定高于后置++(i++) 原因:i++需要开辟临时空间
浮点型变量允许自增/自减
例:
在同一个表达式当中不得对同一个变量反复多次的++或--运算!
六、不同数据类型之间的混合赋值
由 int型向double赋值不会产生影响
由donble型向int赋值时会小数部分截断
由long int向short int型赋值时会高位截断
由signed short型向long型赋值时会符号位扩展
由unsigned short型向long型赋值时会补0扩展
练习:
编写程序,计算给定的某三位数每一位的平方和。