总结一下这两天的学习笔记
文章目录
- Linux目录结构
- Linux基本命令
- 写代码用到的工具
- gcc编译器
- 计算机基本结构
- 关键字 --> 数据类型
- 关键字
- 数据类型
- C的数据
- 2进制、8进制、16进制转成10进制
- 10进制转成2、8、16进制
- 常量
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 原文件名 新名字
添加用户
- 设置用户名:
sudo -m useradd ***
参数-m
表示创建用户目录
- 设置密码:
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~7 | 076 | 满8进1 |
十进制 | 0~9 | 120 | 满10进1 |
十六进制 | 0~9 a~f | 0x98 | 满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;
}
总结一下这两天的学习笔记相关推荐
- Heckman两阶段模型学习笔记
有近两周的时间都在学习Heckman两阶段模型.网上看了一些资料,在CSDN里找到了几篇珍贵的学习笔记,有一篇相当于带我入了门学习笔记 | Heckman两阶段法介绍_Claire_chen_jia的 ...
- ros中的电机速度控制_【RosBot】控制两路步进电机-学习笔记1-Arduino中文社区 - Powered by Discuz!...
本帖最后由 动手党 于 2017-12-11 20:05 编辑 收到之前比赛兑换的RosBot 基础板,顺便做一个学习笔记吧 一. 板子做工和用料 rosbot主板1.jpg (302.71 KB, ...
- Nginx 状态监控、缓存的两种机制(学习笔记十四)
这里 Cache 有两种情况说明,一种是浏览器访问Nginx,浏览器会Cache:一种是Nginx 访问后端,Nginx 自己Cache . 第一种情况 来个例子: $ curl -I http:// ...
- Vivado System Generator学习笔记
环境:win7 64 vivado 2014.1 开发板:zedboard version d xc7z020clg484-1 串口软件:SecureCRT 注意:本文中所有的源码.工程文件 ...
- hive 两个没有null指定的表左关联的结果有null_《数据仓库篇》——Hive的学习笔记3...
<数据仓库篇>--Hive的学习笔记1 讲了Hive的原理,<数据仓库篇>--Hive的学习笔记2 讲了Hive的操作,本篇将介绍Hive的优化. 本篇将Hive的优化分成三个 ...
- python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式
本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...
- android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...
Android学习笔记-保存文件(Saving Files) Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "externa ...
- 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构
分支结构 我们的 js 代码都是顺序执行的(从上到下) 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码 IF 条件分支结构 if 语句 通过一个 if 语句来决定代码执行与否a 语法: if ...
- Java学习笔记:创建线程的两种方法
Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程
最新文章
- iOS基础网络教程-Swift版本: 1.基础网络概括
- select html value属性,HtmlSelect.DataValueField 属性 (System.Web.UI.HtmlControls) | Microsoft Docs...
- Entity Framework中的字符串插值引发担忧
- 计算机少年宫辅导教师总结,微机兴趣小组活动总结
- 导航无限级菜单 java,Element NavMenu 无限级菜单
- 理论基础 —— 查找 —— 二分查找
- C语言 neutralize函数,关于因子数据处理函数中的中性化函数的几个问题
- 在ubuntu中使用cv2.imshow()报错 No protocol specified qt.qpa.xcb: could not connect to display :0
- 调用阿里API创建阿里云主机
- LSMTree - SStable 初体验
- js 获取元素文本_JS中获取元素属性的8大方法
- 万特电能表接线仿真系统 软件_电工技能——分享一款超实用的电工仿真教学接线Flash动画软件...
- 黄卫龙 谈“太极起势”的练法
- 回归分析中f多少合适_spss回归分析F值很大,有100多,这样合理吗
- 鸿蒙系统没有录屏,这15+项高效又实用的功能更新,一定别错过!
- 手机显示未连接网络连接到服务器是怎么回事,苹果浏览器显示未连接互联网是什么回事...
- 关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法
- Unreal Engine UE4开发技巧
- openwrt配置虚拟多wan
- 《做最好的员工》第一章:好员工才会成功
热门文章
- 股票python量化交易016-计算最大回撤
- 基于PyQt5实现查看本地图片功能
- 利用opencv获取网络摄像头数据并显示报错 select() timeout
- 【CSAPP+电流+梯度下降法】九阳神功-速览1
- 7-3 JAVA-水仙花数 (20 分)
- 输出所有的“水仙花数“
- 从键盘读取一个数字,判断是否是3和5的倍数
- 求心理阴影的面积 (题目出自:陈越-浙江大学)
- 利用贝叶斯算法对垃圾邮件进行分类处理
- 面向对象开发方法,Coad方法、Booch方法和OMT方法及UML