复习:
1.Linux 常用命令
is cd pwd clear touch mv cp cat/head/tail/more mkdir chomd rm find grep ifconfig ping whoami sudo man
2.vim文本编辑器
vi 是系统自带的文本编辑器 vim 是vi的加强版本
三大模式:正常,插入,行底
切换方法:ESC i :
正常模式下的操作:
光标的移动:gg G nG vim file.c +n
删除代码: dd x dw/de ndd d$ d^ dgg dG
替换代码: r cw R
复制代码:yy nyy p粘贴
撤销操作:u U Ctrl+r
插入模式下的操作:
jj Ctrl+z Ctrl+x Ctrl+p
行底模式:
set nu set nonu, %s/old/new
n /key !cmd
3.C语言简介
美国贝尔实验室,肯.汤姆逊,丹尼斯.里奇, 1971-1973年
BCPL,newB,c,UNIX,Minxi,Linux,gcc
c89 c99 c11
4.C代码编程执行程序的过程
预处理: 查看宏函数,宏定义的替换结果,检查宏函数
gcc -E -》 .i结尾的预处理文件
编译:理解c代码底层的工作原理。i++ ++i,函数重载的原理
gcc -s -》 .s结尾得到编译文件
汇编:生产代码库
gcc -c -》.o结尾的目标文件
链接:多文件编程的基础
gcc a.o b.o c.o … -》a.out 的可执行程序
5.gcc编译器常用参数
-Wall -Werror
-E -S -c -o -std=gnuxx -l -I(i大写) -D(命令行宏定义)
6.C语言的文件类型名
.h .h.gch
.c .i .s .o .a .so
7.数据类型
signed char 1 -128~127
signed short 2 -32767~32767
signed int 4 正负20亿
signed long 4/8 9开头的19位数
signed longllong 8
unsigned char 1
unsigned short 2
unsigned int 4
unsigned long 4/8
unsigned longlong 8
float 4
double 8
long double 12/16
小数点后六位有效
8.变量名的取名规则
1.只能有字母,数字,下划线组成
2.不能是数字开头
3.不能与32个关键字重名
4.见名知意
9.变量的输入输出
printf 提示信息+占位符+变量名
scanf 占位符+变量名的地址
%hhd %hd %d %ld %lld %f %lf %Lf
%nd %-nd %0nd %n.mf %g
10.运算符
/ % 除数不能为0 ,否则会产生浮点数
== 常量尽量放左边
++/-- 一行内不要出现多次
&& || 具有短路特性
A?B:C 不能在里面出现流程控制语句
11.类型转换
自动类型转换:不同类型的数据会先自动转换为同类型的数据,才能进行计算
转换规则(以不丢失数据为基础,适当地牺牲一些空间)
1、字节少的向字节多的转
2、有符号向无符号转
3、整型向浮点型转
强制类型转换:
(类型)数据 有丢失数据的风险,慎用
一,开关语句
switch(n) /n 可以是数值,表达式,运算结果必须是整数
{
case val: val 必须是常量
…
break;关闭执行开关,如果每个case后都有一个break,形成了分支结构
default: 如果每个case都没打开,则打开该开关,而且任何位置都是最后生效
}
case a … b:判断a到b范围的数据,此为GNU编译器独有的语法,不建议使用
二.循环结构
for 循环语句
循环就是让一段代码反复执行,达到你想要的效果
for是一种比较灵活(相比较于其他循环语句)而且比较危险的一种循环
for([1];[2];[3])
{
[4];
}
一般使用一个变量来引导循环的运行,这个变量就叫做循环变量
1.是给循环变量赋值,C99标准才能在里面定义变量
2.判断循环变量是否达到边界
4.执行被反复的代码,也叫循环体
3.改变循环变量,防止出现死循环,一般对循环变量自加或自减
1 2 4 3 2 4 3 . . .
大括号问题:
1.建议上下对齐
2.如果循环体只有一行代码时,大括号可以省略,但不利于扩展(不建议使用)
for循环多种写法;
for(; ;)
{
死循环
}
int i =0;
for(;1<10;i++)
{
}
for(int i=0;i<10;)
{
i++;
}
while循环语句:
while(循环条件):当循环条件为真时,执行循环体,为假时结束循环
{
循环体
}
while循环相当于for循环的精简版本
for循环负责明确自动循环次数的问题
while循环负责只知道结束条件,而不知道循环次数
do while 语句
do
{
循环体
}while(循环条件);
先执行循环体,在判断循环条件,改循环体至少执行一次
适合先干活,后检查的情况
循环嵌套:
循环语句中包含循环语句
外层序号执行一次,内层执行n次
跳转语句:
goto ; 可以实现在函数内任意跳转
他可能会破坏已经设计好的分支或循环语句,因此绝大数公司都禁止使用。
但是它在驱动编程都是特别适合出来异常
标签名;
goto 标签名;
break
1.在switch语句中关闭执行开关
2.跳出循环,只能跳一层
continue
结束本次循环,进入下一次循环
return
1.返回一个数剧给函数的调用者
2.结束函数的执行