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.

垂直制表符被换行符取代了,水平制表符相当于四个空格。

C语言入门书籍知识点记录的更多相关文章

  1. 计算机二级C语言选择题错题知识点记录。

    计算机二级C语言选择题错题知识点记录. 1,在数据流图中,用标有名字的箭头表示数据流.在程序流程图中,用标有名字的箭头表示控制流. 2,结构化程序设计的基本原则:自顶向下,逐步求精,模块化,限制使用g ...

  2. DB知识点记录

    DB知识点记录 分页 SqlServer:ROW_NUMBER () over (ORDER BY ID) AS RN, MySql:limit Oracle:ROWNUM AS RN 数据表的基本结 ...

  3. C#知识点记录

    用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Ru ...

  4. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  5. spring mvc开发过程知识点记录

    给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件.(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务 ...

  6. javascript知识点记录(1)

    javascript一些知识点记录 1.substring,slice,substr的用法 substring 和slice 都有startIndex 和 endIndex(不包括endInex),区 ...

  7. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  8. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  9. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

随机推荐

  1. VS2017中使用C++语言编写delay函数实现延迟

    秒级别的延时 //定义函数 void delay(int sec){ time_t start_time, cur_time; // 变量声明 time(&start_time); do { ...

  2. vim 一些操作

    在ESC下 gg # 光标跳到开头 dG # 删除光标后的数据 dd # 删除光标所在行 gg dG # 删除全部 (光标跳到开头&删除光标后的数据) x # 删除当前光标下的字符 i # 编 ...

  3. 5_7 丑数(UVa136)<priority_queue的使用>

    Ugly Number的定义为:该数之质因数必须为2,3或5,当然了,依照惯例,1也算是Ugly Number.在此列举一串数列:1,2,3,4,5,6,8,9,10,12,15这些就是前11个Ugl ...

  4. vultr安装kali

    前言 很多国内的主机不支持自定义安装系统,且也不方便下载国外资料:),所以需要使用vultr安装kali. 1.上传镜像 镜像地址填这个(我当时的最新版本) https://cdimage.kali. ...

  5. ES5-bind用法及与以前的apply和call

    当我们调用一个函数的时候,函数中的this一般是指向调用者的.但是我们其实可以在调用函数的时候,传入一个对象,让函数中的this指向我们传入的对象,而不是调用者本身. apply,call,bind都 ...

  6. Vue父组件主动获取子组件的数据和方法

    Vue父组件主动获取子组件的数据和方法 https://www.jianshu.com/p/bf88fc809131

  7. node.js+mysql环境搭建

    https://www.jianshu.com/p/9b338095cbe8 node.js+mysql环境搭建 0x01 前言 随着html web技术的发展,和全栈式开发的需求,对于前端人员来讲, ...

  8. dom4j递归解析XML字符串所有子节点

    /** * dom4j递归解析所有子节点 * * @param childElements * @param mapEle * @return */ public Map<String, Obj ...

  9. 02-14Android学习进度报告十四

    今天我学习了关于构建一个可复用的自定义BaseAdapter的知识. 首先将Entity设置成泛型 代码示例: public class MyAdapter<T> extends Base ...

  10. Math 用法

    console.log(Math.abs(-5)) 取绝对值 console.log(Math.round(5.1)) 取四舍五入 5.5 为中间值 取5 console.log(Math.ceil( ...