总结一下这两天的学习笔记

Linux目录结构

  • ~:表示用户的家
  • /:表示根目录

文件系统:管理工具 --> 管理磁盘的
何为文件系统:用来组织数据存储介质上的存储方式或者检索方式
注意:尽量不要操作根目录
Home目录:存放的是Linux中用户对应的文件夹;你有多少个用户,就会有多少个对应的文件夹。
在这里插入图片描述

不同的用户操作的权限是不一样的
用户的分类

  • 普通用户:有些操作时无法完成的
  • 超级用户:root 拥有最高权限

区分不同的文件类型:用颜色来区分

Linux基本命令

man 命令去查看命令说明
格式: man 需要查看的哪个命令的名

  • pwd命令:显示当前所在的目录位置

使用命令的格式:命令名 操作的内容

  • ls: 列出当前所在目录下的内容
  • ls -a: 列出当前所在目录下所有的内容,包括了隐藏的内容(.开头的和…开头的)

在这里插入图片描述

  • ls 文件夹名字或者路径:列出指定路径下的内容

在这里插入图片描述

  • cd命令:切换目录,换路径的
  • cd …:放回上一层目录
  • cd /:切换到根目录下
  • cd -:返回到你上一次操作的那个目录下

绝对路径:根目录开始的 /
相对路径:不是/开头的路径

mkdir: 创建目录/文件夹路径
touch: 创建文件/路径
可以同时创建很多个文件 格式: touch file1 file2 …filex
rm: 删除文件/路径
rmdir: 删除空目录
rm -r: 删除文件夹/路径(空目录或者非空目录都可以删除)
拷贝
cp: 需要拷贝文件/路径 路径
拷贝整个目录:
cp -r 原文件夹/路径 目标路径
移动命令:
mv 原文件/路径 目标路径
mv:重命名
格式: mv 原文件名 新名字
添加用户

  1. 设置用户名:sudo -m useradd ***

参数-m表示创建用户目录

  1. 设置密码:sudo passwd ***

输入密码并且输入确认密码

写代码用到的工具

Vim文本编辑器
它有三种模式:
插入模式:只有在这种模式下才可以编辑
命令行模式:输入命令的,复制黏贴等操作
底行模式:输入命令的,保存文件、退出等操作的。
模式之间的切换:
命令行模式 —> 插入模式: 键盘输入i即可
插入模式 —> 命令行模式:按键盘上的ESC
命令行模式 —> 底行模式: shift:wq 保存并退出
:w / :q :q!-à强制退出

命令功能
a/A光标后插入/跳到行尾
i/I光标所在处插入/跳到行首
o/O下插一行/上插一行
[N]x删除从光标开始开始连续的N个字符
[N]dd剪切N行
[N]yy复制N行
p粘贴
u取消操作
:N移动光标到第N行
1G到第1行
G最后1行
:set number显示行号
:set nonumber取消显示行号
/str(支持正则表达式)搜索字符str
n继续查找
N反向继续查找
range y块复制

在这里插入图片描述

在这里插入图片描述

gcc编译器

C语言的源程序—代码是给程序员去看;计算机只能识别01这样子的二进制数据
将.c源文件 —> 计算机能识别的二进制文件
编译器:gcc编译器
工作的4个步骤:
预处理 —> 编译 —> 汇编 —> 链接 —> 得到可执行文件

  • 预处理:gcc -E .c源文件 -o 目标.i
  • 编译: gcc -S 目标.i -o 目标.s
  • 汇编: gcc -c 目标.s -o 目标.o
  • 链接: gcc 目标.o -o 3
  • 执行可执行文件: ./可执行文件

gcc 源文件名字 -o 目标可执行文件名字

计算机基本结构

输入设备(键盘、鼠标)、cpu、存储器、输出设备(显示屏、终端)
外存:位于电脑上,例如磁盘、U盘等。存CPU上暂时不使用的数据或者程序!容量比较大。长期存储数据
内存:存放CPU需要使用的程序和数据,容量比较小。掉电的时候数据消失
寄存器:存在于CPU中的,是一个存取速度很快的存储器,容量很小 —> 正在使用的程序和数据
程序: 就是计算机系统可以识别的一组二进制的有序指令。
程序员写的.c源文件 —> a.out 这样子的二进制可执行文件!

关键字 --> 数据类型

关键字

一定是小写
分类:

  • 表示数据类型的关键字: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:无符号 —> 只有正数

数据类型

原码、反码、补码,并且有符号数的最高字节的最高位表示符号位,0表示是正数,1表示负数;负数在内存中就是以补码的形式存储的。

注意:内存的基本单位是字节 1字节占8个位

请添加图片描述

浮点型数据,整数部分和小数部分,他在内存中的存储就不能和整数的存和取的方式一样!

不能用=,只能近似

Float: 单精度占4个字节 小数点后面有6位

Double: 双精度 占8个字节 小数点后面有15位

定义一个float类型的变量a,判断他的值是否和0相等?

If(a>=-0.000001 && a<=0.000001)

C的数据

程序最重要的是处理数据
数据的分类:数值类型数据和非数值类型数据
数值数据:能够进行算术运算得到明确数值概念的信息称为计算机数值数据
非数值数据:图片、语言、语音等。

数值数据:
表现形式有4种

二进制0~1 用b开头b0100 1000满2进1
八进制0~7076满8进1
十进制0~9120满10进1
十六进制0~9 a~f0x98满16进1

2进制、8进制、16进制转成10进制

每一位的数值*进制技术^第几位之和

10进制转成2、8、16进制

在这里插入图片描述

字符数据转成对应ASCII码值来表示:

单引号括起来的就是字符

  • 数字字符 ‘0’~‘9’ ASCII码值:48~57
  • 空字符 ‘\0’ ASCII码值: 0
  • 大写字母字符 ‘A’~’Z’ ASCII码值: 从65开始 依次+1即可
  • 小写字母字符 ‘a’~’z’ ASCII码值: 从97开始 依次+1即可。

常量

常量:值是不可以修改的

变量:值是可以修改的

常量分类:

  • 整型常量:各种进制数都可以
  • 字符常量:’a’
  • 长整型常量: 78L
  • 无符号整型常量: 78U
  • 浮点型常量:1.2 2.5
  • 字符串常量:“hello world”----双引号括起来的,是字符串常量。在内存中占几个字节?

注意:字符串常量都是‘\0’字符结尾的,因为’\0’是字符串的结束符号。

‘\0’的ASCII码值是多少: 0

代码中宏来表示常量.

宏定义的格式:#define 名字 数值

本质:就是在预处理的时候把宏直接替换成对应的数据。

总结:宏在使用的过程中就是一个简单的文本替换!!!

好处:只要修改宏对应的值,凡是有用到这个宏的地方,值都会被改掉 —> 一改全改的效果!

宏还可以用来表示函数,叫宏函数

例如:

#include <stdio.h>
#define suan(x, y, z, f) (x)*(y)*(z)*(f)

int main()
{
	int day = 365, hour = 24, minute = 60, second = 60;
	printf("一年共有%d秒\n", suan(day, hour, minute, second));
	return 0;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值