1、开发环境
VMware Workstation是什么:VM是一个模拟一台电脑的软件
Linux操作系统:选择用Linux系统种的Ubuntu系统,因为它图形界面,和windows很相似,对于初学者来说是很方便的!
与Linux系统的交互:可以使用双击或者拖拽,本质是去执行对应的命令!尽可能的去使用命令!直接执行命令效率是高的!
2、Linux目录结构
Windows系统中:几个磁盘我就有几棵倒置的树
Linux系统目录结构:只有一棵倒置的树,并且树的根 / 就是根目录
Linux系统系统是支持多用户,你用哪个用户登录,终端中就会显示哪个用户名
~表示家
文件系统:我们常见的有NTFS FAT 管理磁盘的管理工具
何为文件系统:用来组织数据存储介质上的存储方式或者检索方式
注意:没有特殊的需要,不要乱操作/目录下的内容
3、Linux基本命令
Linux系统一切皆为文件,命令都时小写的
使用命令的格式:命令名 操作的内容
ls:列出当前所在目录下的内容
ls -a:列出当前所在目录下所有的内容,包括了隐藏的内容(.开头的和..开头的)
ls 文件夹名字或者路径:列出指定路径下的内容
如果你不清楚这个命令是用来做什么, 使用 man 命令去查看说明
格式: man 需要查看的哪个命令的名字,主要看 name即可
cd:切换目录,换路径的
cd .. :返回到上一级目录下
cd .:当前目录
cd /:切换到根目录下
cd 路径名字:切换到指定的目录下
cd ~:切换到自己的家目录下
cd -:返回到你上一次操作的哪个目录下
clear:清空屏幕
也可以使用快捷键Ctrl+L
mkdir:创建目录/文件夹路径
touch:创建文件/路径
可以同时创建很多个文件 格式:touch 文件名1 文件名2 ….
rm: 删除文件/路径
rmdir:删除空目录
rm -r:删除文件夹/路径 (空目录或者非空目录都可以删除)
rm -i:删除的时候会有提示 y n
拷贝命令:
cp 需要拷贝文件/路径 目标路径
拷贝整个目录:
cp -r 原文件夹/路径 目标路径
移动命令:
mv 原文件/路径 目标路径
mv:重命名
格式: mv 原文件名 新名字
4、写代码用到的工具vim
打开文件:vim 文件名,如果这个文件存在的话,直接打开;如果文件不存在,会新建一个
Vim文本编辑器它有三种模式:
插入模式:只有在这种模式下才可以编辑
命令行模式:输入命令的,复制黏贴等操作
底行模式:输入命令的,保存文件、退出等操作的
模式之间的切换:
命令行模式切换到插入模式:键盘输入i即可
插入模式切换到命令行模式:按键盘上的ESC
底行模式:命令行模式键入shift + :
在底行模式下:wq 保存并退出,w 保存,q 退出,q! 强制退出
5、gcc编译
C语言的源程序代码是给程序员去看;但是计算机只能识别01这样子的二进制数据
将.c源文件转换为计算机能识别的二进制文件用,gcc编译器来完成这个动作
工作的4个步骤:
预处理、编译、汇编、链接就可以得到可执行文件
预处理:gcc -E .c源文件 -o 目标.i
编译:gcc -S 目标.i -o 目标.s
汇编:gcc -c 目标.s -o 目标.o
链接:gcc 目标.o -o 目标
执行可执行文件:./可执行文件
一步生成:gcc 源文件.c 默认得到的可执行文件的名字: a.out
gcc 源文件名字 -o 目标可执行文件名字
6、C的数据
数据的分类:数值类型数据和非数值类型数据。
数值数据:能够进行算术运算得到明确数值概念的信息成为计算机数值数据
非数值数据:图片、语言、语音等
数值数据表现形式有四种:
-
二进制:0 ~ 1 给计算机使用 b010101
-
八进制:0 ~ 7 用0开头的 写代码用的
-
十进制:0 ~ 10 给人看的 10 20 30
-
十六进制:0 ~ 9 a ~ f A ~ F 用0X或0x开头
7、关键字---数据类型
关键字:一定都是小写
表示数据类型的关键字:char、double、enum、float、int、long、short、struct、union、void
表示控制语句的关键字:break、case、continue、default、do、else、for、goto、if、switch、
While
表示数据存储类型的关键字:auto、extern、register、static
其他关键字:const、return、sizeof、volatile、typedef、signed、unsigned
注意:内存的基本单位是字节 1字节占8个位
只要是数据,一定要存到内存中,要存到内存中,就需要空间,存的单位是字节。
各种数据类型的数据他们的取值范围是不一样的
8、常量
常量:值是不可以修改的
变量:值是可以修改的
常量分类:
-
整型常量:10,100
-
字符常量:'a'
-
长整型常量:78L
-
无符号整型常量:78U
-
浮点型常量:1.2,1.5
-
字符串常量:"hello world" ---双引号括起来的,是字符串常量,在内存中占12个字节(空格一个,'/0'一个)
/0
是字符串的结束符号
代码中宏来表示常量
宏定义的格式:#define 名字 数值
本质:就是在预处理的时候把宏直接替换成对应的数据。
总结:宏在使用的过程中就是一个简单的文本替换,只要修改宏对应的值,凡是有用到这个宏的地方,值都会被改掉
宏还可以用来表示函数,叫宏函数