IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言学习笔记 -> 正文阅读

[C++知识库]C语言学习笔记

英文:

read:读,r字母

write:写,w字母

execute:执行,运行,x字母

directory:目录,d字母

2.计算机组成部分:硬件和软件

2.1.硬件部分: 细分两类

  1. 必要的三大硬件
  1. CPU

核心的两大功能:

1. 数据运算,例如:1+1=2

2. 控制外设:例如:cpu从键盘上捕获一个输入的字母,数字,然后cpu将捕获的信息放在显示器上显示出来

从外设拿到数据(读数据,read)或者向外设发送数据(写数据,write)

问:何为外设?

答:除了CPU其他任何硬件

\3. 了解主流的cpu

X86 : intel ,AMD

PowerPC: 飞思卡尔,通信产品

EPGA:xilinux ,各行各业

DSP:TI(德州仪器) 各行各业

ARM: (华为海思,高通),手机行业

  1. 内存(RAM):用于暂存CPU计算时(1)或者计算之后的数据(2)

特点:数据可以进行无限的覆盖

缺点:掉电数据丢失(就是重启或者断电)

优点:数据的读或者写速度非常快(比CPU慢,比硬盘快)

问:何为cpu访问控制操作内存呢?到底啥意思呢?

答: 就是cpu从内存存读数据,例如:读取1,1 还有就是cpu向内存写入数据,例如:写入2

  1. 硬盘(ROM)(统称为闪存):用于永久性保存数据

特点:数据也可进行无限的覆盖

缺点:数据的读或者写操作太慢了,所以数据操作一般都要先从硬盘拷贝到内存

再从内存进行操作,这样速度能够提高不少

优点:数据永久性不丢失,也就是掉电数据不丢失

2)其余可选外设

外设:外接的硬件设备 例如:鼠标,键盘,显示器,显卡, WIFI, 触摸屏,内存,U盘等

功能:1. 给cpu提供数据

  1. 存储数据:内存,闪存,U盘,TF卡等

注意: 哪些外设需要有,哪些外设不需要,都是根据用户的需求来定

2.2.软件:细分三大类

2)软件部分:细分三类

a)操作系统(类似大管家)

功能:操作硬件(由操作系统中的驱动程序这类软件完成),给程序(QQ, 360等)分配CPU资源和内存资源

明确:任何程序要想得到运行,必须先有CPU资源,只有CPU资源,才能数据运算,程序才算真正的运行明确:任何程序都是运行在内存中,所以后续计算机软件编程最终的目标就是怎么玩内存!

b) shel1终端程序:(类似二管家,例如: windows下的黑窗口程序)

功能:接收用户从键盘上输入的各种命令,然后执行这些命令,完成一定的功能

例如:输入notepad命令,立马启动一个记事本程序

3)各种应用程序:QQ,吃鸡,抖音 ,百度浏览器等

  1. 主流的操作系统

windows:微软

linux:开源(免费和付费),推荐三大主流linux系统:

ubuntu(推荐,64位,版本:18.04 ),fedora,kali(黑客最爱)

苹果:MAC IOS

安卓:本质就是linux 谷歌公司的

vxwork:付费(硬实时操作系统,以上linux,windows等都是软实时操作系统)

  1. linux系统发展(设计思想参考unix)

开源免费

1991年正式发布

linux内核之父:linus

推荐linux发展视频:<>

5.linux系统理念(信仰)[关键]

五个字:一切皆文件

含义:在linux系统中,所有的硬件外设(键盘,鼠标等)都是以文件的形式存在

所以在linux系统中,如果应用程序(例如QQ等)要想访问某个硬件外设

只需访闸这个硬件外设对应的文件即可,访问这个文件就是访问硬件外设本身!

例如:

硬件外设 对应的文件名

键盘 event0

鼠标 mouse0

显示器 fb0

触摸屏 event1

摄像头 video0

所以:QQ要从键盘读取数字:read(event0)

问:linux系统中文件如何管理呢?

答:靠文件系统(仅仅是一个名词)来管理文件

不同的文件系统管理文件的方式方法不一样

例如:硬盘一般用NTFS文件系统一(管理的文件大小无限制)

U盘一般用FAT32文件系统(管理的单个文件不要超过4GB)

内存一般用SYSFS文件系统(管理的文件都是位于内存中,掉电丢失)

6.linux系统中跟文件和目录(也是一种特殊的文件,俗称文件夹)相关的概念

6.1.目录:能够包含其他目录和文件

6.2.根目录:文件系统中最上一层的目录,用"/"表示

也就是linux系统中所有的目录和文件他们都是位于"/"根目录下

例如:/home(语义:在根目录下有一个home目录或者一个home文件)

6.3.子目录:位于其他目录下的目录

例如:/home(语义:假如home是一个目录名,home就是根目录’/'的子目录)

/home/tarena:假如tarena是一个目录名,tarena就是home子目录

其中第二个’/'表示分割

6.4.父目录:子目录的上一层目录

例如:/home:根目录‘/’就是home子目录的父目录

6.5.当前目录(又称工作目录):当前正在使用或者所在的目录,用’.'表示

例如:./home:当前目录下有一个home目录或者文件

上一级目录:当前目录的父目录,用"…"表示

例如:…/…/:上一级的上一级目录

6.6.主目录:登录linux系统时,需要一个用户,linux系统给这个用户专门指定了一个专有的目录

此目录简称主目录,并且都是位于/home/目录下,用"~"表示

例如:登录linux系统的用户名叫tarena,tarena用户的主目录:/home/tarena

登录linux系统的用户名叫zhangsan,zhangsan用户的主目录:/home/zhangsan

6.7.路径:目录和文件的位置,又分两种:

绝对路径:以"/"开头的路径表示形式

例如:/home/tarena

相对路径:不以"/"开头的路径表示形式

例如:home/tarena或者./home/tarena或者…/…/

由衷建议:以后软件代码中最好写绝对路径

open(“my.txt”); //前提是程序运行之前必须先进入my.txt文件所在的目录下,否则打开open失败

或者

open("/dev/my.txt");//爱在哪个目录下就在哪个目录下

7.掌握linux系统必要命令:

建议:通过输入各种命令替代图形界面操作方式

命令格式:命令名 选项

7.1)pwd:获取当前所在路径

7.2)ls:获取目录和文件的信息

形式1:

ls -lh //获取当前目录下所有的目录和文件的详细信息

形式2:

ls -lh 文件名 //获取此文件的详细信息

例如:

ls -lh /home/tarena/qw.c 得到以下信息:

  • rwxrw-r-- 1 tarena tarena 70 Jun 25 16:36 qw.c

说明:

‘-’:表示此文件就是一个普通的文件

‘rwx’:表示当前登录linux的用户对此文件可以读(查看文件),可以写(向文件写入信息),可执行

‘rw-’:表示当前登录linux的用户所在的组对此文件可以读,可以写,不可执行运行

‘r–’:表示其他的linux用户对此文件可以读,不可写,不可执行

‘1’:表示硬连接数(不关注)

‘tarena’:表示当前登录linux系统的用户名

‘tarena’:表示tarena用户所在的组

‘70’:表示此文件大小为70个字节

“Jun 25 16:36”:文件的创建日期

‘qw.c’:文件名

7.3)clear:清屏命令

7.4)cd:切换路径:cd /home/tarena

7.5)mkdir:创建目录:mkdir -p /home/tarena/hello/hello1

7.6)touch:创建空文件:touch /home/tarena/hello.txt

7.7)rm:删除目录和文件: rm -fr /home/tarena/hello

7.8)cp:文件或者目录拷贝:cp -fr 源文件 新文件

cp -fr 源目录 新目录

注意:cp hello.txt hello/

分3种:

  1. hello是一个目录并且存在,就是将hello.txt拷贝一份到hello目录下
  2. hello是一个目录并且不存在,命令cp报错
  3. hello是你想象的,你认为的目录但是不存在,并且命令形式:cp hello.txt hello 就是一个文件的拷贝

切记:只要是目录操作,建议最后一定加分隔符’/’,来区分是目录还是文件

建议每次输入命令,用TAB键来补全,也会顺便给你添加’/’

7.9)mv:移动,剪切

--------------------------------------------------------------------------------------------------------------

7.10)cat 命令:快速查看文件的内容

例如:cat hello.txt

7.11)echo命令:向显示器打印输出数据命令

例如:echo "我是大神"或者echo 我是大神

注意:此命令一般配合">“和”>>"(统称重定向符)

例如:

cd /home/tarena/

touch hello.txt

echo 我是大神 > hello.txt 意思是:先将hello.txt文件内容删除,然后将新内容写入到文件

cat hello.txt

echo 我是小神 >> hello.txt 意思是:将新内容追加到文件的后面

cat hello.txt

7.12)find命令:到某个指定的路径下找文件或者目录

格式:find 路径 -name 要找的文件名

例如:find /usr/include -name stdio.h

语义:到/usr/include目录下找一个文件名为stdio.h这个文件

7.13)grep命令:到某个路径下的某个文件中搜索字符串

例如:grep “我是大神” * -Rn

语义:在当前目录下的所有文件中搜索我是大神字符串

“*”:表示全部文件

“-Rn”:到子目录下也同样搜索,并且打印字符串所在的行号

7.14)linux系统解压缩的三条终极命令:

linux常用的两种压缩格式:bz2和gz

压缩命令:

tar -jcvf 压缩包.tar.bz2 目录或者文件

tar -zcvf 压缩包.tar.gz 目录或者文件

解压缩:

tar -xvf 压缩包.tar.bz2 / 压缩包.tar.gz

例如:

cd /home/tarena/

mkdir hello

touch hello.txt

echo 我是大神 > hello.txt

cat hello.txt

echo 我是小神 >> hello.txt

cat hello.txt

mv hello.txt hello/

tar -jcvf hello.tar.bz2 hello/ //把hello目录压缩成hello.tar.bz2压缩包

tar -zcvf hello.tar.gz hello/ ///把hello目录压缩成hello.tar.gz压缩包

tar -xvf hello.tar.bz2

tar -xvf hello.tar.gz

\8. 掌握大名鼎鼎的linux编辑器软件:vim

8.1.常用的开发编辑器软件:vim,vscode,sublime等

重点放在vim

8.2.vim命令格式:vim 文件名 //打开一个文件

8.3.vim三种模式:可视模式,编辑模式,命令行模式

可视模式:只能看不能编辑

编辑模式:可以输入各种文本信息

命令行模式:给vim输入各种控制命令

8.4.vim三种模式之间的转换:

明确:第一次刚执行vim命令之后,首先进入可视模式

可视模式-----按i键或者o键或者a键---->编辑模式

编辑模式-----按ESC键----------------->可视模式

可视模式-----按shift+:组合键--------->命令行模式

编辑模式-----先按ESC进入可视模式—>按shift+:组合键--------->命令行模式

8.5.vim命令行模式下相关的命令

w:保存文件

q:不保存并且退出vim

wq:先保存后退出vim

q!:强制直接退出,不保存文件

%s/原来内容/新内容/g:将文件中原来的内容全部替换成新内容

n1,n2s/old/new/g:将文件从n1行到n2行所有的old内容换成new内容

例如:6,9s/小/大/g:将文件的第6行到第9行的小替换成大

! linux命令,例如:! ls :在vim命令中来执行linux的其他命令,再例如:! cd /home/tarena

案例:练习vim,打开一个新文件,随意输入各种信息

8.6.vim快捷键(前提是先切换到可视模式下,然后再各种快捷键)

  1. 方向键以后不要用上下左右,而是用:h(左)j(下)k(上)l(右)替换
  2. 行选中:shift+v然后按hjkl方向键选中

列选中:ctrl+v然后按hjkl方向键选中

  1. 复制:y键
  2. 粘贴:p键
  3. 剪切:x键
  4. 撤销:u键
  5. 撤销之后由反悔:ctrl+r
  6. 保存退出:ZZ键
  7. 先进入命令行模式执行:sp 文件名,实现上下分屏

先进入命令行模式执行: vs 文件名,实现左右分屏

目的:一个屏幕上可以同时编辑多个文件

屏幕切换快捷键:ctrl+ww

  1. 搜索:先按/然后再后面输入要搜索的信息,然后按小n键表示向下搜索,按大N键表示向上搜索\
  2. 自动补全:ctrl+n,先输入开头的一个字符或者多个字符,然后按ctrl+n自动补全后面的内容
  3. 自动格式化文本内容,让代码变得整齐划一,好看:先行选中然后按=键
  4. 跳转到文件的末尾:G键
  5. 跳转到文件的开头:gg键
  6. 跳转到指定的某个一行:先进入命令行模式,然后输入行号即可,例如:14,跳转到14行
  7. 复制某几个单词,字母:先按v键,然后按方向键选中单词,字母,最后按y键复制或者按x剪切,然后按p键粘贴
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-09-30 11:45:05  更:2021-09-30 11:47:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 18:44:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码