开班典礼已经结束,老师即将开始讲解C语言。
这几天在自学《C Prime Plus》,希望能对我的学习有帮助!我的学习计划是在学校上课的每天都写学习总结。俗话说的好,积少成多,滴水穿石。相信通过自己不懈的努力,我一定会变得很优秀!
C语言课已经开始上了。
上课要求:
1.上课不能睡觉
2.上课记笔记(电子版+纸质版)
3.上课学写代码的失败
4.编译环境是虚拟机。虚拟机是虚拟出来一个独立的,能够完整运行的,具有完整的硬件系统功能,独立的运行在PC机上,占用一部分PC机的运行内存和硬盘。
5.Linux系统是内核,管控系统的内存管理、网络管理、驱动管理、进程管理,这时候还不能称为一个完整的系统,需要加上GNU(软件项目组),发布的时候是按照源代码发布的,需要转换成电脑可以识别的二进制指令,转换的过程是开发者进行的,所以每个系统的名字可能不一样。
6.Linux系统的终端是写代码的地方。
打开终端的方式
(1)鼠标单击
(2)快捷指令:CTRL+ALT+T
(3)linux@ubuntu:~s
linux:用户名
@:分隔符
ubuntu:系统版本
:分隔符
~:家目录:工作目录,所有的东西都在这下面进行 home/linux
/:根目录,只有一个根
$:代表用户的身份,为普通用户
备注:windows与linux的根本区别:
(1)磁盘分区不同
(2)路径的区别
windows是反斜杠
linux是斜杠
(3)操作方式不同
windows是鼠标进行操作
linux是shell终端
#:代表高级用户
切换用户:sudo su root 将普通用户切换为超级用户
sudo su root跟su root的效果是一样的,但是权限不一样,sudo su root的权限最高
退出超级用户:exit/CTRL+D
7.Linux文件操作指令
(1)创建文件夹:mkdir 文件夹名
例:mkdir 22091 创建成功,颜色是蓝色
mkdir 文件夹1 文件夹2
mkdir 1 2 3
mkdir -p1/2/3 递归创建文件夹
(2)打开文件夹
cd 1
cd 2
cd 3
返回上一级文件夹 cd..
(3)删除文件夹
rmdir 2
rm -r 1
(4)显示文件夹
ls
ls -a查看目录下所有文件,包括隐藏文件
ls -l把文件夹下的所有文件通过清单列出
对于22091来说,d rwx rwx r(1+3+3+3)
对于1来说,代表的是文件的属性
文件属性有
b:块设备文件
c:字符文件
d:目录文件 蓝色
-:普通文件 白色
l:链接文件
s:套接字文件
p:管道文件
对于第一个3来说,代表的是用户的权限 7
对于第二个3来说,代表用户组的权限 7
对于第三个3来说,代表其它用户的权限 5
rwx 421 7 0rwx
775是22091的权限
touch 文件名 创建普通的文件
mv 文件夹/文件夹名 路径
当路径的文件或者文件夹不存在的时候,相当于重命名
cp 文件1 文件2 拷贝
cp -r拷贝文件夹非空也可以
vim/vi 文件名 创建一个并打开文件
pwd 查看路径
绝对路径:从根目录开始
相对路径:不从根目录开始
vim编译器
命令行到插入 a/i/o大小写都可以
插入到命令行 ESC
按ESC,再输入冒号 命令行模式到底行模式
命令行模式
yy 复制一行
dd 删除一行
u 撤销一次操作
nyy 复制n行
ndd 删除n行
wq 保存并退出
q!强制退出
set nu 设置行号 setnonu 不设置行号
range:s/str1/str2/gc
range:代表的是范围 %代表全部行 .代表当前行 $代表最后一行
6,9 s/j/r 将6到9行的第一个j替换成r
s 替换命令
str1 原来的字符串
str2 新的字符串
g 可选择,有的话替换的时候所有行都替换,没有就替换遇到的第一个字符
c 可选择,执行前进行询问
gcc编译器
当我们进行gcc 2.c的时候,一共经过了四个步骤(预处理,汇编,编译,链接)
预处理阶段:展开头文件;替换宏,去掉注释
gcc -e 2.c -o 2.i
汇编阶段:gcc -s 2.i -o 2.s 汇编文件
编译:gcc -c 2.s -o 2.o 机器文件
链接;gcc 2.o -o a.out 生成a.out的可执行文件
成功案例:
gcc xzc.c
./a.out
显示Hello World
即先用vim编译器编译c程序文件
之后用gcc编译
最后用./a.out链接
计算机的基本组成结构
CPU:显示器 内存 硬盘 键盘
CPU:寄存器
逻辑运算器:任何复杂的程序都能看成逻辑和算术运算
控制器:读取指令
寄存器:存放指令
内存:内存小,运行速度快,掉电不保存
外存:内存大,运行速度快,掉电保存
a.out 是程序 2.c是源代码
10011101转换成十进制 157
32h 转换成十进制 50
八进制25转换成二进制 11001
124转行成16进制 7C 124除以16为7余12
十六进制32转换为十进制 3乘以16的一次方再加上2
C语言关键字:int,float,double,char,long,short,union,struct,enum,void
类型修饰符:const,volatile
控制语句:if else for while switch do case continut break goto default
其他:return typedef sizeof signed unsigned
32个关键字
标识符的定义规则:由字母、数字和下划线构成,不能以数字开头,不能和关键字相同
sizeof:计算存储空间
有符号数和无符号数
signed 有符号 默认存在有符号的数
unsinged 无符号
有符号表示范围:
signed char:0000 0000 ~1111 1111 0~255
无符号表示范围
0是正数,1是负数,不参与运算的
signed char:1000 0000~0111 1111 -128~127 255-127=128
unsigned char 0~255 0000 0000~1111 1111
数值溢出
char c=260
原码:数字原本的二进制编码
反码:原码反过来
补码:反码+1
在计算机当中,所有的存储全部是按照补码进行存储的,对于负数来说,原码和补码是不同的,因为负数的最高位是符号位
回环法
2022年9月19日
徐子宸