C语言入门书籍知识点记录
1. 数据在内存中的存储(二进制存储)
内存条:电路的电压有两种状态:0V或者5V,对应的一个元器件有2种状态:0 或者1.
一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位。
一个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte)
8*1024个元器件就是1024Byte,简写为:1KB;
8*1024*1024个元器件就是1024KB,简写为1MB;
2.====载入内存,让程序运行起来=====
以安装QQ为例:
1> 安装的QQ软件是保存在硬盘中的,双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到这个软件,将数据复制到内存中。QQ不是在硬盘中运行的,是在硬盘中运行的。因为内存的读写速度比硬盘快很多。
读写速度:内存 > 固态硬盘 > 机械硬盘。机械硬盘是靠电机带动盘片转动来读写数据的,而内存条通过电路来读写数据,电机的转速没有电的传输入读快。虽然固态硬盘也是通过电路来存取数据,但是因为与内存的控制方式不一样,速度不及内存。
不管是运行QQ还是编辑Word文档,都是先将硬盘上的数据复制到内存,才能让CPU来处理,这个过程叫作:载入内存。完成这个过程需要一个特殊的程序,这个程序就叫做加载器。
CPU直接与内存打交道,它会读取内存中的数据进行处理,并将结果保存到内存。如果需要保存到硬盘,才会将内存中的数据复制到硬盘。
例如:打开Word,输入一段文字,新增的文字只是保存到了内存,Ctrl+S 才会保存到硬盘。因为内存断电之后会丢失数据,所以如果你编辑完Word文档没有保存就关机,那么你将永远无法找回这些内容。
虚拟内存:如果我们运行的程序较多,占用的空间就会超过内存容量。例如:计算机的内存容量是4GB,去运行10个程序,这10个程序共占用5G的空间,就意味着需要从硬盘复制5G的数据到内存,这显然是不可能的。
操作系统:OS 为我们解决了这个问题,当程序运行需要的空间大于内存容量的时候,内存中暂时不用的数据再写回硬盘,需要这些数据时再从硬盘中读取,并将另外一部分不用的数据写入硬盘中,这样硬盘中就会有一部分空间来存放内存中暂时不用的数据,这一部分空间就叫做虚拟内存。
5G -4G = 1G,上面的情况需要在硬盘上分配1G的虚拟内存。
硬盘的读写速度比内存慢很多,反复的进行交换数据会消耗很多时间,如果内存太小,会严重影响计算机的运行速度,甚至会出现“卡死”的现象,即使CPU强劲,也不会有很大的改观。如果经济允许,建议将内存进行升级。
========ASCII 编码,将英文存储到计算机======
前面我们已经讲到,计算机是以二进制的形式来存储数据的,它只认识0和1两个数据,我们在名目上看见字,在存储之前都被转换成了二进制(0和1序列),在显示时也要根据二进制找到对应的字符。
可想而知,特定的文字必然对应着固定的二进制,否则在转换时将发生混乱。对应文字与二进制的规范成为:字符集或者字符编码。
ASCII : American Standard Code for Information Interchange 的缩写,翻译过来就是:美国信息交换标准代码。
ASCII 编码表:
二进制:00000000 十进制:0 字符/缩写:NUL(NULL) 解释: 空字符
二进制: 0000 1101 十进制:13 字符缩写:CR(Carriage Return)解释: 回车键
二进制: 0010 0000 十进制:32 字符缩写:(Space) 解释: 空格
二进制:0011 0000 十进制:48 字符缩写: 0
二进制:0100 0001 十进制:65 字符缩写:A
二进制:0110 0001 十进制:97 字符缩写:a
==========第一个C语言程序==============
输出:Output
字符:Character
字符串:String
第一个程序:
#include<stdio.h>
int main()
{
puts("C 语言中文网");
return 0;
}
====全角和半角输入法的区别====
全角和半角的区别主要在于除汉字以外的其他字符,比如标点符号、英文字母、阿拉伯数字,全角字符和半角字符占用的位置的大小不同。
在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为半角,把一个汉字所占的位置称为全角。
====源文件====
在开发软件的过程中,我们需要将编写好的代码保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件。这种用来保存代码的文件就叫做源文件(Source file)
每种编程语言的源文件都有特定的后缀,以方便被编译器识别,被程序员理解。源文件后缀大都根据编程语言本身的名字来命名,例如:
C语言的源文件后缀是.c
C++ 语言的后缀是.cpp(C Plus Plus)
============C语言编译器===
上端:桌面端: Visual C++
下端:嵌入式系统端:arm架构平台
程序:程序是一个比较宽泛的称呼,可以细分为:控制台程序、GUI程序,静态库、动态库等。
===使用code:block===
程序==> 新建 ==> 空白文件【Ctrl + Shift + N 】
修改源文件:文件 --> 保存文件【Ctrl + S】
编译:构建--> 构建【Ctrl + F9】
编译并执行:构建 --> 构建并执行【F9】
=====第一个程序修改====
#include<stdio.h>
#include<stdlib.h>
int main(){
puts("123456");
system("pause");
return 0;
}
======函数====
在C语言中,有的语句使用时不能带括号,有的语句必须带括号,带括号的称为函数(Function).
较早的C语言标准库中包含了15个投文件,stdio.h和stdlib.h 是最常用的两个;
stdio 是standard input output 的缩写,stdio.h 被成为:标准输入输出文件,包含的函数大都和输入输出有关系,puts()就是其中之一。
stdlib.h是 standard library 的缩写,stdlib.h 被称为:标准库文件,包含的函数比较杂乱,多是一些通用工具型函数,system() 就是其中之一。
===C语言代码中的空白符====
空格、制表符、换行符等统称为空白符(Space character),他们只用来占位,并没有实际的内容,也显示不出具体的字符。
制表符分为水平制表符和垂直制表符,他们的ASCII编码值分别是9和11.
垂直制表符被换行符取代了,水平制表符相当于四个空格。