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. Flask - g变量

    传送门 http://flask.pocoo.org/docs/1.0/appcontext/#storing-data http://flask.pocoo.org/docs/1.0/appcont ...

  2. Java工作流引擎关于数据加密流程(MD5数据加密防篡改)

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统 流程数据加密  md5  数据保密流程数据防篡改 ...

  3. Django框架之图书管理系统(一)

    图书管理系统共分为两篇博客进行讲解,该篇博客主要记录图书与出版社之间的关系(一对一),记录图书的增删查改操作 ============================================= ...

  4. 配置 DNS

    配置 DNS 如何自定义配置容器的主机名和 DNS 呢?秘诀就是 Docker 利用虚拟文件来挂载容器的 3 个相关配置文件. 在容器中使用 mount 命令可以看到挂载信息: $ mount /de ...

  5. 后端——框架——持久层框架——Mybatis——《Mybatis从入门到精通》读书笔记——初篇

    1.Mybatis知识点 框架的知识点大致可以分为三个部分 基础: 介绍编写增,删,改,查: 动态标签: config配置文件 Mapper配置文件 插件:常见的插件有三个 pageHelper:分页 ...

  6. python列表操作方法详解

      列表 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表是一个数据的集合,集合内可以放任何数据类型,可对集合方便的增删改查操作.Python已经内置确定序列的长度以及确 ...

  7. php 基础 语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

    require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行 require include->include有返回值,而require没 ...

  8. hyfhaha大事记——luogu

    成就墙 AK CSP-J 初赛 AK CSP-J 复赛 CSP- J 一等奖 CSP-S 一等奖 大事记 2017-09-20 13:54 注册洛谷账号 之后洛谷一直处于沉沦状态 2018 2018- ...

  9. nginx 加工上游服务器返回的内容,并返回给客户端

    禁用上游响应头部功能 Syntax: proxy_ignore_headers field ...; Default: — Context: http, server, location 功能介绍:某 ...

  10. 十四 OGNL的概述

    1 什么是OGNL? 对象图导航语言(对象图,以任意一个对象为根,通过OGNL;可以访问与这个对象关联的其他对象).比EL表达式强大很多倍. 可以存取对象的任意属性.调用对象的方法,遍历整个对象的结构 ...