文章目录

  • 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 原文件名 新名字
添加用户

  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~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;
}

总结一下这两天的学习笔记相关推荐

  1. Heckman两阶段模型学习笔记

    有近两周的时间都在学习Heckman两阶段模型.网上看了一些资料,在CSDN里找到了几篇珍贵的学习笔记,有一篇相当于带我入了门学习笔记 | Heckman两阶段法介绍_Claire_chen_jia的 ...

  2. ros中的电机速度控制_【RosBot】控制两路步进电机-学习笔记1-Arduino中文社区 - Powered by Discuz!...

    本帖最后由 动手党 于 2017-12-11 20:05 编辑 收到之前比赛兑换的RosBot 基础板,顺便做一个学习笔记吧 一.  板子做工和用料 rosbot主板1.jpg (302.71 KB, ...

  3. Nginx 状态监控、缓存的两种机制(学习笔记十四)

    这里 Cache 有两种情况说明,一种是浏览器访问Nginx,浏览器会Cache:一种是Nginx 访问后端,Nginx 自己Cache . 第一种情况 来个例子: $ curl -I http:// ...

  4. Vivado System Generator学习笔记

    环境:win7 64   vivado 2014.1 开发板:zedboard version d    xc7z020clg484-1 串口软件:SecureCRT 注意:本文中所有的源码.工程文件 ...

  5. hive 两个没有null指定的表左关联的结果有null_《数据仓库篇》——Hive的学习笔记3...

    <数据仓库篇>--Hive的学习笔记1 讲了Hive的原理,<数据仓库篇>--Hive的学习笔记2 讲了Hive的操作,本篇将介绍Hive的优化. 本篇将Hive的优化分成三个 ...

  6. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  7. android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...

    Android学习笔记-保存文件(Saving Files) Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "externa ...

  8. 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构

    分支结构 我们的 js 代码都是顺序执行的(从上到下) 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码 IF 条件分支结构 if 语句 通过一个 if 语句来决定代码执行与否a 语法: if ...

  9. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

最新文章

  1. iOS基础网络教程-Swift版本: 1.基础网络概括
  2. select html value属性,HtmlSelect.DataValueField 属性 (System.Web.UI.HtmlControls) | Microsoft Docs...
  3. Entity Framework中的字符串插值引发担忧
  4. 计算机少年宫辅导教师总结,微机兴趣小组活动总结
  5. 导航无限级菜单 java,Element NavMenu 无限级菜单
  6. 理论基础 —— 查找 —— 二分查找
  7. C语言 neutralize函数,关于因子数据处理函数中的中性化函数的几个问题
  8. 在ubuntu中使用cv2.imshow()报错 No protocol specified qt.qpa.xcb: could not connect to display :0
  9. 调用阿里API创建阿里云主机
  10. LSMTree - SStable 初体验
  11. js 获取元素文本_JS中获取元素属性的8大方法
  12. 万特电能表接线仿真系统 软件_电工技能——分享一款超实用的电工仿真教学接线Flash动画软件...
  13. 黄卫龙 谈“太极起势”的练法
  14. 回归分析中f多少合适_spss回归分析F值很大,有100多,这样合理吗
  15. 鸿蒙系统没有录屏,这15+项高效又实用的功能更新,一定别错过!
  16. 手机显示未连接网络连接到服务器是怎么回事,苹果浏览器显示未连接互联网是什么回事...
  17. 关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法
  18. Unreal Engine UE4开发技巧
  19. openwrt配置虚拟多wan
  20. 《做最好的员工》第一章:好员工才会成功

热门文章

  1. 股票python量化交易016-计算最大回撤
  2. 基于PyQt5实现查看本地图片功能
  3. 利用opencv获取网络摄像头数据并显示报错 select() timeout
  4. 【CSAPP+电流+梯度下降法】九阳神功-速览1
  5. 7-3 JAVA-水仙花数 (20 分)
  6. 输出所有的“水仙花数“
  7. 从键盘读取一个数字,判断是否是3和5的倍数
  8. 求心理阴影的面积 (题目出自:陈越-浙江大学)
  9. 利用贝叶斯算法对垃圾邮件进行分类处理
  10. 面向对象开发方法,Coad方法、Booch方法和OMT方法及UML