今天 我们来说第二章 觉得C程序设计
主要包含以下三点内容
1 如何将数据存入计算机
2 其他数据表示
3 数据的输入与输出及数据的运算
如何将数据存入计算机
在我们小的时候 老师都会问我们 :左手有两个苹果,右手有三个苹果,这时候 你一共有几个苹果?
对于这个问题 我们先把左手两个苹果 右手三个苹果的信息 输入到耳朵里
然后 再将这个信息存入大脑中 再在大脑中进行计算 计算得出的结果 是 5
然后 我们再将 5 这个答案输出反馈给老师
计算机的计算过程 和 我们大脑这个运算的过程是一样的
它也分为四个步骤
数据的 输入 存储 计算 和 输出
计算机的存储 是由存储器实现的 而它的功能就是存储各种程序和数据
存储器 分内存和外存
内存 只能暂时性的存储数据 内存是重要部件 是与CPU沟通的桥梁 计算机中 所有的程序运行都是在内存中进行的 但它只能短暂的存储数据 内存 又称为主存 是CPU 能直接访问的存储设备
存储器 可以根据用途 分为内存和外存
也就是 主存和副存
内存可以理解为 一排有序的小开关 每个开关有两个状态 开表示 1 关表示 0
所以 我们 每个开关 对应一个二进制 0/1 称为一个位 ( bit)。
为了管理方便 8个位为一组 称为一个字节(byte)
我们 为所有的字节 编号 这个编号就称为 字节的地址
变量的作用
变量 就是计算机存储空间中 一个被命名的位置 它由一个或多个连续的字节组成
每个变量都有一个名称,标识内存中的这个位置 以便通过变量名称 读取该位置的数据
所以 我们在程序中使用变量名 实际运用的 是内存中的每个存储位置
变量的值 不是固定的 随时可以改变 而且 此时是不限制的
编译器 按变量的类型 分配不同大小的存储空间,程序与代码 都是以二进制存储的
那么 为什么高级语言要区分数据类型呢?
一方面 是为了规范数据的使用 另外一方面 也为了方便用户的使用
C语言引入类型系统的意义
1 不同类型的数据的存储方式不同
2 不同类型的数据可以参与的运算不同
3 不同类型的数据对同一种运算的实现方法不同
下图 是我们三种 基础的数据类型
下图 为C语言 全部的数据类型
本文 我们主要来说 基本类型
首先是整数类型,也就是 int类型 它是为了处理不同范围的整数
那么 通过在 int前 加入不同单词 我们能够得到不同整数类型
我们 短整型 占2个字节 长整型和整数都是占 4字节
对于短整型和长整型 因为本身长度 占用的字节都是不固定的
我们代码可以这样写
#include <stdio.h>
int main() {
int a;
int b;
scanf("%d%d", &a, &b);
printf("int所占字节数 % d\n",sizeof(int));
return 0;
}
运行结果如下
sizeof 在C语言中 可以读取到指定类型所占字节
这里 我们读的是 int整数类型
浮点变量用来存储浮点数,浮点数包含的值带小数点,也可以表示分数和整数。
浮点数在计算机中的表示,基于指数表示法,将分为指数和尾数来存储。浮点变量根据数据表示范围和精确度不同,有以下几种类型
单精度类型
float 在C语言中用于存储单精度浮点数
因为 float 是单精度浮点数 小数只能 6-9位
大于这个区间的小数 例如 1.12345689123 这个就有 11位小数
更长的小数 则需要用 double 双精度浮点类型
然后是字符类型 char型
例如 我们想存储一个 name 叫 小猫猫
这就需要用字符类型
然后 变量 必须 先定义 后使用
声明的格式为 变量类型加变量名
其实 定义变量的目的 就是向编译器 去申请存储空间
内存空间的大小 由数据类型决定
就比如 定义int 就需要先申请 4个字节的空间
定义 double 则需要申请 8个字节空间
变量定以后 编译器在内存空间中找到合适的位置 并用变量名标识
然后 赋值运算符 我们用等号表示
变量有三个基本要素:变量类型、变量名和变量的值。其中,由类型说明所申请存储空间的大小;变量名表示该存储空间;通过赋值符将数据送入存储空间当中