==================================
2022-7-1
==================================
一.温故知新
1.演示了一遍安装虚拟操作系统的步骤
1)虚拟机软件->VMWare
2)Ubuntu的镜像->网易镜像 清华镜像
3)需要手动分区
4)安装软件之前需要切换软件源
2.终端
1)修改了终端的字体字号
2)终端的配色方案
3)分析终端提示符
4)命令
cd
ls
pwd
touch
mkdir
rm
cp
mv
cat
tar
二.编辑器与编译器
编辑器是用来编写程序的
编译器是用来编译程序的
在Linux环境中编辑器有很多种 : gedit vi vim emacs
在Linux环境中编译器有很多种 : gcc cc arm-linux-gcc
主要讲 vim 和 gcc 的使用
1.编辑器vim的使用
vim之所以被称之为强大的编辑器是因为本身支持很多的模式
命令模式 命令行模式(底行模式) 编辑模式(插入模式) 可视 可视块 可视行
注意 : 不要使用vim打开目录文件
注意 : 用vim编写完成的文件内容要用正常的保存退出方式,不要直接关闭终端
否则会生成交换文件(交换文件是隐藏文件)
vim hello.c
|
按iIoOaA V 按:
编辑模式<----------命令模式---------->命令行模式
---------> <---------
按esc 按esc或者删掉:
命令行模式的操作
w 保存
q 退出
wq 保存并且退出
大家在终端中,执行 vim ~/.vimrc
先进入到编辑模式
set ai
set si
set ts=4
set sw=4
set nu
保存退出
2.编译器gcc
注意 : gcc编译器不检查段错误(操作内存不当引起的)
gcc hello.c
1)编译之后终端什么提示都没有,代表程序没有语法错误,会生成可执行文件
2)编译之后终端报出警告,代表程序有些问题,但不是致命的,会生成可执行文件
3)编译之后终端报出错误,代表程序100%有问题,并且是致命的,
不会生成可执行文件
默认的可执行文件的名字是a.out
指定可执行文件的名字
gcc -o 可执行文件名 .c文件
要求大家在编译程序时加入-Wall选项,可以把所有警告列出
gcc -Wall hello.c
3.执行可执行文件
./a.out
三.man手册(帮助手册)
有困难,找男人
man 你要查找的东西
在man手册界面中键盘上下按键可以翻阅
按 q 键可以退出man手册
=====================================
作业
1.修改自己的vim配置文件
=====================================
#include <stdio.h>
/*
#include
面试题
1.在C语言中以#开头的内容都是预处理
2.从.c文件编译成可执行程序,需要经历哪些阶段?
预处理->编译->汇编->链接
3.在C语言中预处理都包含哪些操作?
文件包含 宏定义 条件编译
4.在包含头文件时可以使用双引号或者尖括号,有啥区别?
尖括号 : 默认会从指定的目录(/usr/include)中查找头文件,
如果找不到会报错
双引号 : 默认会从当前目录中查找头文件,
如果找不到再从指定目录中查找头文件,
如果再找不到报错
stdio.h 标准输入输出的头文件
*/
int main(void)
/*
main函数(也叫做主函数)
main函数是程序的入口
当执行可执行文件时,会从main函数进入,按照从上往下的顺序
逐行逐行执行代码,最后从main函数退出
*/
{
printf("Hello World!");
/*
printf是一个函数(功能)
是用来打印输出的(可以把双引号引起来的内容打印到终端中)
由于printf函数是别人实现的功能,所以需要包含人家的头文件
*/
}
/*
1.在C语言中有字符串,有没有字符串类型?
没有字符串类型
printf("Hello World!");
在C语言中双引号引起来的内容叫做字符串
字符串都是由一个一个单一的字符组成的
在C语言中单引号引起来的内容叫做字符
字符串最后都有一个结束标志'\0'(尾0)
例子:
"a" 和 'a'
不一样,"a"是字符串,'a'是字符
"a"是由'a' + '\0'组成
======================================
"0" 和 '0' 和 0
不一样."0"是字符串,'0'是字符,0是整数
"0"是由'0' + '\0'组成
练习:
在终端中打印出一个 %
*/
1 2 3 4 5 6 7 8
| #include <stdio.h>
int main(void) { printf("%"); }
|
/*
printf打印输出的特殊内容->转义字符
转义字符也是字符
转义字符是由一个 \ + 某一个东西组成的
转义字符除了有ASCII值以外还有另外的一层含义
ASCII(描述的就是字符和数字的对应关系)
常用的ASCII表一共有128个字符(对应数字0 - 127)
记住特殊的ASCII值
字符 ASCII值
'\0' 0
'\n' 10
'0' 48
'A' 65
'a' 97
转义字符
字符 ASCII值 含义
'\0' 0 字符串的结束标志
'\n' 10 换行符
会把光标换到下一行行首的位置
'\r' 13 回车符
会让光标回到当前行行首的位置
'\t' 9 水平制表符
会补一个tab
'\v' 11 垂直制表符
光标会换到下一行当前列的位置
*/
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include <stdio.h>
int main(void) { printf("123\v456\v789\v"); printf("123\t456\t789\t"); }
|
/*
printf打印输出的特殊内容->标准化输出格式
标准化输出格式只是一种输出格式,并不是字符
是由一个 % + 某一个东西组成的
%叫做占位符
%d 十进制整数输出
%o 八进制输出
%x 十六进制输出
%f 小数输出(默认打印输出小数点后六位)
%.2f 默认输出小数点后2位
%c 单一字符输出
%s 字符串输出
%p 输出地址
%% 打印一个百分号
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <stdio.h>
int main(void) { printf("%c-%d\n", 100, 'A'); }
|