当前课程知识点:程序设计基础 >  第二章 变量与代数思维 >  2.4 变量定义与变量类型 >  2.4.1 变量定义与变量类型

返回《程序设计基础》慕课在线视频课程列表

2.4.1 变量定义与变量类型在线视频

2.4.1 变量定义与变量类型

下一节:2.5.1 猜数游戏与数据表示

返回《程序设计基础》慕课在线视频列表

2.4.1 变量定义与变量类型课程教案、知识点、字幕

刚才大家通过王小二

编写的电子秤

这样一个模拟程序

已经对变量

已经有了一个基本概念

也对代数思维

有一个初步的印象

那为了更好的理解这个

下面我们先对变量

它的特点进行一个介绍

那么变量我们已经知道

它是专门用来存储一些值的

那么在程序里面

经过操作它的值

可以变换的这个量

我们把它称为变量

变量在使用它之前

要有声明

就像我们刚才看到的

模拟程序里面

前面的这几行

在后面用公式去

用这些变量的时候

前面有对它的一个定义

那每一个变量跟其他的变量

它不能相同

而且呢

必须是一个合法的名称

什么叫合法呢

就是每一个字符

都必须是要么是字母

要么是下划线

第一个字母必须是这样子

那么后面的字符

可以从字母数字下划线

里面去选择

来进行随意的组合

但是有个要求

不能跟我们C C++里面的

系统所保留的

我们称之为关键字的

那些词相同

就是你可以随便取

但是你不可以取main

这不可以

你可以随便取

但是不可以去取int

这样的名字

因为这些称之为语言的关键字

不允许在程序里面当做变量来使用

为了让我们的程序更好理解

有人可能会觉得奇怪

我要理解它干嘛

不是让计算机去理解吗

程序是人编出来的

有的时候难免会出错

那你去调整调试它的时候

改正错误的时候

如果代码你看的一塌糊涂

要怎么调试呢

怎么改正错误呢

程序有时候也需要相互的交流

要给别人去用

或者你要去用别人的程序

如果别人看不懂或者你看不懂

这个事情没法干

所以我们在取变量的时候

一定要取一个好听的名字

实际上就取一个好懂的名字

那么一般来讲

我们由于它的变量名称

所用的字符的限制

首字母是下划线

或者字母

而后面是字母下划线数字的选择

这样几个里面去选择

为了让名字更有意义

一般呢

大家约定的是使用英文的单词

或者英文单词的缩写

或者大家也可以使用汉语拼音

这些都可以

总之一条原则

看上去最好能够望文生义

一看就能够清楚干什么用的

所以有的时候

我们在程序里面也会出现一些

在这个编程的业界里面

大家约定俗成的

一些名称来做变量名

我们后面章节的内容会看到

那个变量的名称

其实可能是一个字母

但是这样一个用法呢

是在编程的领域里面很常见的

所以这里面关于变量的命名

大家从一开头学程序的时候

要有所注意

在刚才的代码里面我们也看到

变量定义的时候

需要声明它的名称

它的类型

这两个信息

刚才名称我们讲过一些规范

大家要遵守

那么在名称之前

有一个称为类型的东西

每一个变量都是有它一个类型

类型是什么东西呢

我们后面还会有讨论

现在我们只需要知道

在C C++语言里面

数据变量的类型

大体上可以分成两类

第一类我们把它称之为基本数据类型

比如说int、float这些整型浮点等

第二类型呢我们称之为构造数据类型

在我们课程的后续章节中会讲到

比如数组、结构、枚举等等

这些跟int、float、double这些类型

不太一样

我们把它称为构造数据类型

他是用基本的数据类型

它的变量按照特定的规律

来构造而成的

在计算机里面

各种数据其实是存在内存空间里面的

那到底存多大呢

类型其实就是要告诉计算机

要分配多大个地

不同类型的数据

它占用的内存大小

可能是不一样的

不同的类型它表示的数据

也有比较大的差异

大家看到

整型它在内存里面占了四个字节

每一个字节是八个二进制位

这个在前面我们讲计算机的基本历史

原理的时候大家已经听到了

每一个字节是八位

那么一个int占四个字节

那就意味着他有32个二进制位

听上去很长

那么这样的一个整数

它表示数的范围

其实也是有限的

大家可以看到

这个数字很长

第二种类型我们称之为无符号整型

提到有符号无符号

其实这个概念呢

跟我们数学上的

正数负数这个有关联

一个无符号的整数

那这样的变量

它永远只能存储

这种非负的数

它可能是0

然后可能是正整数

但是它不会是负的

因为它没有符号

所以它怎么着都是正数

这个时候它表示的范围

很显然大家看到

比刚才这个int类型要大

它的这个最大值要比它大

第三个呢 longint

长整型

但是呢它的表示范围

其实在现在我们这个定义器下面

也是一个有限的范围

第四个呢

是这个无符号的长整型

那么这是它表示的范围

那么除了这些整型之外

我们还有一些类型

是表示实数的

或者呢表示小数的

那大家从小学到高年级就

开始学小数或者学分数

最开始大家搬着指头是整数

最后几分之几那是分数

几点几那是小数

在计算机里面也要有这样的区分

所以第二大类型

称之为实数类型

它大体上分之为三种

一个呢叫做 float

第二个呢叫做double

double有的时候也

被称为双精度

double表示比

float的精度更大

那么可以看到

在double这个类型里面

它的这个表示的范围

比这个float要大得多

然后第三类呢是longdouble

那它占的字节就更多了

这个表示范围就更广了

这是三种不同的实数类型

基本上在我们数学里面

所能会碰到的数据

这些都能表示出来

那么第三大类型呢

我们称之为布尔类型

这个其实是跟布尔代数

数学这个离散数学

有关的一种数据的类型

也就是这种变量

它是表示逻辑这种结果的

我们把这种布尔型有时候

称之为逻辑类型

它在内存里面占一个字节

它只有两个结果

真或者假

对一个事物或者

对一个结论的判断

这个结论是真的

这个结论是假的

当然你可以说对的错的

总之表示一个逻辑上的值

那么这个值跟整数不太一样

它有它特殊的运算规律在里面

那我们把这个称为布尔类型

这个类型的名字bool小写的

第四个类型呢叫字符类型

这个拼写是char

那这个类型呢也占一个字节

大家也可能觉得奇怪

那计算机计算机

不是用来计算的吗

被算的的不都是数吗

刚才整型浮点型好理解

加上布尔类型呢

逻辑上的运算好像也能理解

那为什么作为一个计算机

它会有字符类型呢

这个大家想一想

其实也比较好理解

我们看到的计算机已经远远

超出它最初设计的时候

只是用来计算这个功能了

也就是我们现在计算机

不仅可以算数

还可以算别的东西

字符就是一个不是数的

可以算的那个东西

至于为什么字符可以算

计算机怎么去算字符

这个东西的

我们后面还会专门来讨论它

这是第四种类型字符类型

也就是它会在屏幕上

在变量里面

存储的是字符

符号 变量在使用的时候

要求它一定要定义

先定义后使用

在使用它的时候有时候

需要对它设定初始的值

那我们把变量的定义一般写作

一般是要求写成类型的名字

空格符 然后变量的名字

就像现在看到的一样int a

就定义了一个名称为a的整型变量

这个变量里面存储的值是整数

或者说在这个变量所在的存储空间

里面的二进制位

要把它解释成为整数

注意我说的这句话

要把里面存储的二进制位解释成整数

言下之意

我是不是也可以解释成别的呢

这个我们后面会有一个讨论

那么在定义变量的时候

对它进行赋值

我们称之为变量的初始化

就像现在大家看到的

int a=300;

这个过程我们可以画个图

可以大家看到

a表示的是它的符号的地址

300是这个a单元里面的内容

而下面写着这个and a

他表示是a变量的地址

所以int a=300

意思就是让计算机

去分配一个四字节的内存空间

把300这个值存储到里面去

这就是一个变量在定义

的同时赋了初值

我们把它称之为变量的初始化

那么在变量定义好了之后

或者说在定义好的同时初始化了之后

我们就可以使用它

目前我们对变量的使用

一个是把它应用到表达式中去

代表了一个量

另外一个就是把它

放在等号的左边

意思就是要用等号右边的

结果去送到左边这个变量

的内存单元去

我们把这个称为变量赋值

它的写法是变量等于表达式

那比如说这边有几个句子

定义了cπ这两个变量

那么πpi=3.14159

c=sin(pi/4)

所以变量参与了运算

变量放在等号左边

又被改变了它存储的值

把这样的过程称为变量赋值

那么可以看到这个变量赋值

它是有一些

很鲜明的特点的

第一变量一定要先被定义

才能被使用

第二如果你定义变量时候的值

我们把它称为定义的初始化

第三在等号左边的量

称为是被赋值的量

这样一个赋值其实是

用一个新的值去冲掉

原来老的值

或者说冲到内存里面

原来的那些二进制位

把它覆盖掉

第四呢在等号右边的量

是被读取的或者

说被使用的一种变量

它的值读取出来

用于那些计算的过程

读取变量的值

是对它内容不会发生改变的

第五个呢

变量右边的表达式

它里面出现的所有的变量

都是保持原来的值不变

这是在我们变量赋值

或者运算的语句里面

关于变量的一些特点

那下面我们看一个动画

这个动画讲解了一个变量

它赋值的一个动态的过程

程序设计基础课程列表:

第一章 编程初步

-1.1 基础知识

--1.1.1 什么是程序?什么是语言?

--1.1.2 什么是程序设计?

--1.1.3 计算机发展史

-1.2 买菜问题

--1.2.1 问题描述

--1.2.2 程序的基本结构

-1.3 数学运算

--1.3.1 数学运算符

--1.3.2 数学函数

-1.4 补充说明

--1.4.1 编程环境的下载与安装

--1.4.2 程序基本结构中的含义

--1.4.3 格式与风格

-1.5 总结

--1.5 总结

-程设论道

--程设论道

-师生问答

--师生问答一:怎样学好程序设计

--师生问答二:语言选择

--师生问答三:关于函数

-第一章 编程初步--语法自测

第二章 变量与代数思维

-2.1 关于超级计算器的几点思考

--2.1.1 关于超级计算器的几点思考

-2.2 电子秤模拟 — 背景介绍及需求分析

--2.2.1 电子秤模拟 — 背景介绍及需求分析

-2.3 电子秤模拟 — 代码实现

--2.3.1 电子秤模拟 — 代码实现

-2.4 变量定义与变量类型

--2.4.1 变量定义与变量类型

-2.5 猜数游戏与数据表示

--2.5.1 猜数游戏与数据表示

-2.6 关于变量的讨论

--2.6.1 变量的初始值

--2.6.2 变量类型

--2.6.3 变量内存单元地址

--2.6.4 存“变量地址”的变量——指针

--2.6.5 指针的 读/写 操作

--2.6.6 指针的 加/减 操作

--公告

-2.7 变量体现的计算思维

--2.7.1 变量体现的计算思维

-程设论道

--程设论道

-师生问答

--师生问答

-第二章 变量与代数思维--语法自测

第三章 逻辑推理与枚举解题

-3.1 谁做的好事——语义表示

--3.1.1 谁做的好事——语义表示

-3.2 谁做的好事——真假检查

--3.2.1 谁做的好事——真假检查

-3.3 谁做的好事——循环枚举

--3.3.1 谁做的好事——循环枚举

-3.4 谁是嫌疑犯——多重循环枚举

--3.4.1 谁是嫌疑犯——多重循环枚举

-3.5 谁是嫌疑犯——破案线索表示

--3.5.1 谁是嫌疑犯——破案线索表示

-3.6 谁是嫌疑犯——用二进制枚举

--3.6.1 谁是嫌疑犯——用二进制枚举

-程设论道

--程设论道一

--程设论道二

--程设论道三

-师生问答

--师生问答一:字符与ASCII码表

--师生问答二:其他循环语句、运算符优先级与变量作用域

-第三章 逻辑推理与枚举解题--语法自测

第四章 筛法与查找

-4.1 插花游戏

--4.1.1 问题提出(求素数)

--4.1.2 函数初探

--4.1.3 运行演示

-4.2 筛法

--4.2.1 筛法思路

--4.2.2 数组的定义

--4.2.3 代码翻译

--4.2.4 运行演示

--4.2.5 小朋友数人数

--4.2.6 运行演示

--4.2.7 韩信点兵

-4.3 线性查找

--4.3.1 扑克查找问题

--4.3.2 扑克查找问题代码翻译

--4.3.3 最小值问题

--4.3.4 最小值问题代码翻译

-4.4 折半查找

--4.4.1 提问

--4.4.2 折半查找思路

--4.4.3 折半查找代码翻译

--4.4.4 折半查找运行演示

-4.5 排序问题

--4.5.1 插入排序

--4.5.2 选择排序

--4.5.3 函数写法

--4.5.4 运行演示

-4.6 总结

--4.6.1 总结

-程设论道

--程设论道一:数组与编码思维

--程设论道二:筛法

-师生问答

--师生问答一:函数与面向过程编程

--师生问答二:数组的下标越界

-第四章 筛法与查找--语法自测

第五章 分治思想与递归

-5.1 阶乘

--5.1.1 阶乘问题

--5.1.2 递归解法

--5.1.3 递归小结

-5.2 排序

--5.2.1 归并排序——总体思路

--5.2.2 归并排序——思路分解

--5.2.3 归并排序——代码解说

--5.2.4 快速排序——总体思路

--5.2.5 快速排序——代码解说

--5.2.6 排序总结

-5.3 矩阵填充

--5.3.1 矩阵填充问题

--5.3.2 代码解说

-5.4 分书与八皇后

--5.4.1 问题描述

--5.4.2 问题分析——共性

--5.4.3 问题分析——区别

--5.4.4 解题准备——二维数组

--5.4.5 解题准备——递归设计

--5.4.6 代码解说——分书问题

--5.4.7 代码解说——八皇后问题

-5.5 青蛙过河

--5.5.1 问题描述

--5.5.2 问题分析——简单情况

--5.5.3 问题分析——复杂情况

--5.5.4 问题分析——一般情况

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答一

--师生问答二

-第五章 分治思想与递归--语法自测

第六章 递推与动态规划

-6.1 兔子数列问题

--6.1.1 问题描述

--6.1.2 按大小兔子分别递推

--6.1.3 按总数递推

--6.1.4 不用数组递推

-6.2 分鱼问题

--6.2.1 问题描述

--6.2.2 从A到E递推

--6.2.3 从E到A递推

-6.3 橱窗的插花问题

--6.3.1 问题描述

--6.3.2 题意理解与分析

--6.3.3 用枚举思想解题

--6.3.4 采用递推的优化算法

--6.3.5.1 采用动态规划算法—优化分析

--6.3.5.2 采用动态规划算法—递推代码

--6.3.5.3 采用动态规划算法—计算过程

--6.3.5.4 采用动态规划算法—输出方案

--6.3.6 动态规划总结

-6.4 最长公共子序列问题

--6.4.1 问题描述与理解

--6.4.2 问题分析

--6.4.3.1 动态规划解题(1)

--6.4.3.2 动态规划解题(2)

--6.4.3.3 动态规划代码

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第六章 递推与动态规划--语法自测

第七章 文本数据处理

-7.1 统计记录总数

--7.1.1 问题分析

--7.1.2 读文件操作

-7.2 统计活跃用户数

--7.2.1 问题分析

--7.2.2 字符串

--7.2.3 程序翻译与演示

-7.3 统计在线时长

--7.3.1 问题分析

--7.3.2 结构

--7.3.3 程序翻译与演示

--7.3.4 写文件操作

-7.4 总结

--7.4.1 总结

-程设论道

--程设论道

-师生问答

--师生问答

-第七章 文本数据处理--语法自测

第八章 非文本数据处理

-8.1 将数据组织成链表

--8.1.1 链表的基本概念

--8.1.2 代码讲解

--8.1.3 链表遍历与释放

-8.2 提高链表访问效率 —— 哈希链表

--8.2.1 简单的哈希算法

--8.2.2 算法实现

-8.3 以二进制文件存储链表

--8.3.1 二进制文件的操作方法

--8.3.2 代码讲解

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第八章 非文本数据处理--语法自测

第九章 可配置的程序设计

-9.1 自动售卖程序

--9.1.1 提出问题与初步设计

--9.1.2 细化实现订单处理

--9.1.3 使程序更健壮

-9.2 配制水果信息

--9.2.1 提出问题与设计文件格式

--9.2.2 实现订单处理功能

-9.3 指定界面语言

--9.3.1 提出问题与命令行参数

--9.3.2 实现程序功能

-程设论道

--程设论道

-师生问答

--师生问答

-第九章 可配置的程序设计--语法自测

2.4.1 变量定义与变量类型笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。