Week01 复习

文章介绍了Linux系统中的文件操作,包括访问隐藏文件和目录导航。接着讲解了Vim编辑器的基本操作,如移动光标、删除和替换文本。然后概述了C语言的特点、数据类型及其转换,以及手动编译C代码的步骤。最后讨论了循环结构(for、while)和数组的使用,强调了数组越界和内存管理的概念。
摘要由CSDN通过智能技术生成

Day01

  • ~ ~ 用户主目录 eg:~/.vimrc 打开配置文件

  • /根目录下 文件 eg:绝对路径:从根目录出发描述文件位置 eg: cd /dev/bus/usb/001/

  • -a 显示所有文件

    • Linux中以 . 开D头的都是隐藏文件 eg: 交换文件 ".06task.c.swp" 已存在!

    • Ctrl+h 显示隐藏文件(图形形式)

Day02

正常模式

光标移动

  • gg 光标跳转第一行(加头文件)

  • G 光标跳转到最后一行

  • n(数字)加回车 光标向下跳转n行

  • n- 光标向下跳转n行

  • nG 直接跳转到n行

  • vim file.c +n 从第n行进入文本(知道哪错了,进入改错位置)

删除操作

  • dd 删除光标所在的一行代码

  • n+dd 删除n行

  • dw/de 删除一个连续字符串(dw会删除空格)

替换代码

  • r 替换光标所在的一个字符

  • cw 替换一个连续的字符串

插入模式

进入插入模式

  • i 在当前光标面进入插入模式

  • I大写 光标跳转到当前行,进入插入模式

  • A 光标跳转到当前行,进入插入模式 (文尾忘加;)

  • o 在当前行的面一行插入空白行,进入插入模式

  • O 在当前行的面一行插入空白行,进入插入模式

  • :>n n行代码向右缩进一次

  • :<n n行代码向左缩进一次

C语言介绍

优点特点

  • C语言是专门为了编写操作系统而诞生的语言,天生适合对硬件编程

  • 以运行速度快而著称,而且非常适合编写数据结构算法

缺陷

  • 因为出现时间太早,所以有很多缺陷,因为没想到普通人也可以编程,但很多前辈总结避免这些缺陷或陷阱的经验

数据类型

为什么要对数据进行分类?

  • 现实中数据就是自带类别属性的

  • 对数据进行分类可以节约内存存储空间,从而提高运行速度

  • 8 Bit 比特= 1 Byte 字节

手动编译的方法

  • gcc 01hello.c && ./a.out

  • 对C语言的扩展和增强 gcc file.c -std=gnu99

C代码如何从源文件变成可执行文件的过程(背)

  • 1.预处理:把源文件翻译成预处理文件

    • gcc -E xxx.c 把显示预处理结果到终端

    • gcc -E xxx.c -o xxx(同名).i 把预处理的结果存储到xxx.i的预处理文件中

  • 2.编译:把预处理文件翻译成汇编文件

    • gcc -S xxx.i 生成以.s(小写)结尾的汇编文件

  • 3.汇编:把汇编文件翻译成二进制目标文件

    • gcc -c xxx.s 生成以.o结尾的目标文件

  • 4.链接:把若干个目标文件合并成一个可执行文件

    • gcc a.o b.o c.o......... 生成a.out可执行文件

内建

整型

  • signed 有符号 二进制最高位是作为符号位,符号位0正1负 eg:1001 1101 0110 1100

    类型名 字节数 数据范围

    • signed char 1个字节 -128~127(背) 256个数

    • signed short 2字节 -32768~32767(背)

    • signed int 4字节 正负20亿

    • signed long 4/8字节(取决于操作系统32/64) 正负20亿/正负开头9开头19位整数

    • signed long long 8字节 正负开头9开头19位整数

      注意:signed不加就代表加了 signed char = char

  • unsigned 无符号 二进制最高位是作为数据位

    类型名 字节数 数据范围

    • unsigned char 1个字节 0~255 (背) 256个数

    • unsigned short 2字节 0~65535 (背)

    • unsigned int 4字节 0~40亿

    • unsigned long 4/8字节(取决于操作系统32/64) 0~40亿/0~1开头的20位整数

    • unsigned long long 8字节 0~1开头的20位整数

      注意:由于定义无符号数据时比较麻烦,在标准库中把这些类型重新定义成了新的类型名

      需要包含添加头文件<stdint.h>

      无符号:uint8_t/uint16_t/uint32_t/uint_64t

      有符号:int8_t/int16_t/int32_t/int_64t

模拟型

字符型:char

  • 字符就是图案或者符号 ,字符在内存中依旧存储成整数,需要显示成字符时,操作系统会根据ASCII码表中对应的关系把整数 显示成对应的符号或者图案 eg: '1'字符 1数值

    • '\0' 0 特殊字符 空字符(什么都不打印)

    • '0' 48

    • 'A' 65

    • 'a' 97

      注意:char 想要显示成整数时:%hhd (整型的char)

      想要显示成字符时:%c

Day03

for循环语句

  • 在for循环内定义的变量只能在for循环内使用,出了for后没法使用

while循环

  • 等同于(while循环相当于for循环期中一个精简版本)

    • for循环是负责解决明确知道循环次数的问题

    • while循环是负责只知道循环结束条件不确定循环次数的问题

break

  1. 在switch中关闭case开关

  2. 跳出循环,如果有循环嵌套时,只能跳出最近一层的循环

Day04

数组

  • 计算数组的总字节数sizeof(arr)

  • 计算数组成员单个的字节数sizeof(arr[0])

  • 计算数组长度的公式sizeof(arr)/sizeof(arr[0])

数组越界问题

  • 数组越界后果

    C语言为了程序运行效率考虑,C语言不检查数组下标是否越界

    1. 一切正常

    2. 段错误 (核心已存储)

    3. 脏数据

二维数组

注意:

  1. 大括号内数据可以全部省略,那么就可以自动补0

  2. 大括号数据和列数不省略,行数可以省略,编译器会自动计算行数 eg: [] [5]

  3. 不能省略二维数组的列数 eg: [3] []

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值