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. SVG和canvas的区别

    1.Canvas 是用JavaScript 操作动态生成的, SVG 则是使用XML静态描述生成的; 2.Canvas 基于位图,简单来说就是图片放大会影响到显示的效果,造成不好的影响,SVG 基于矢 ...

  2. spring使用context:property-placeholder载不进属性问题

    环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3 今天整合了SpringMVC + MyBatis,发现了一个问题,在这里做个记录,各位如果遇到相同的问题 ...

  3. linux kali 的ifconfig命令

    ifconfig命令 1.ifconfig执行页面 root@localhost:/home/zys# ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> ...

  4. vue项目中vant tab改变标签颜色

    找了几种方法,只有下面这个方法是生效的: <van-tabs v-model="active" sticky title-active-color="#144a9e ...

  5. Python笔记3

    类格式示例: class Student(): name = '' age = 0 def print_file(self): print('name:' + self.name) print('ag ...

  6. Oracle字符集查询及修改

    字符集包括以下四种: 1.oracle服务端字符集 select * from nls_database_parameters; 2.oracle服务器注册字符集 HKEY_LOCAL_MACHINE ...

  7. 关于python 3.x import matplotlib as plt ImportError: DLL load failed: 找不到指定的模块

    windows 10下使用conda update --all更新过后,就出现这样的问题了,各种包不能用了,然后在stackoverflow上搜到有人也遇到相同的问题,并通过其中的回答找到了原因,这里 ...

  8. 安装mysql常见错误解决方法

    Mysql ERROR 1698 (28000) 解决 解决mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exi ...

  9. [IDEA] Idea复制文件到项目一直updating indices的问题

    通常我们在开发JavaWeb项目的时候,都需要先将网页写好,在进行复制到web目录下,如果里面包含了很多的资源文件,就会造成一直updating indices. 方法一: 这是因为项目需要对web目 ...

  10. [转]利用 Commons-Fileupload 实现文件上传

    转载 Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web开发人员来说,只需要了解和使用其中 ...