当前课程知识点:C++语言程序设计基础 >  第2章 C++简单程序设计(一) >  基本数据类型、常量、变量 >  基本数据类型、常量、变量

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

基本数据类型、常量、变量在线视频

基本数据类型、常量、变量

基本数据类型、常量、变量

 

C++能够处理的基本数据类型

l  整数类型;

l  浮点数类型;

l  字符类型;

l  布尔类型。

 

程序中的数据

l  常量

n  在源程序中直接写明的数据;

n  其值在整个程序运行期间不可改变。

l  变量

n  在程序运行过程中允许改变的数据。

 

整数类型

l  基本的整数类型:int

l  按符号分

n  符号的(signed

n  无符号的(unsigned

l  按照数据范围分    

n  短整数(short

n  长整数(long

n  长长整数( long long 

l  ISO C++标准并没有明确规定每种数据类型的字节数和取值范围,它只是规定它们之间的字节数大小顺序满足:

(signed/unsigned)signed char (unsigned) short int (unsigned) int (unsigned) long int  long long int

 

字符类型(char)

l  容纳单个字符的编码;

l  实质上存储的也是整数。

 

浮点数类型

l  单精度(float

l  双精度(double

l  扩展精度(long  double

 

字符串类型(详见第6章)

l  有字符串常量

l  基本类型中没有字符串变量

l  采用字符数组存储字符串(C风格的字符串)

l  标准C++类库中的String类(C++风格的字符串)

 

布尔类型(bool)

l  只有两个值:true(真) false(假)

l  常用来表示关系比较、相等比较或逻辑运算的结果

 

各基本类型的取值范围

4.png

常量


l  在程序运行的整个过程中其值始终不可改变的量;

l  直接使用符号(文字)表示的值;

l  例如:123.5'A'都是常量。

整数常量

l  以文字形式出现的整数;

l  十进制

n  若干个0~9的数字,但数字部分不能以0开头,正数前边的正号可以省略。

l  八进制

n  前导0+若干个0~7的数字。

l  十六进制

n  前导0x+若干个0~9的数字及A~F的字母(大小写均可)。

l  后缀

n  后缀L(或l)表示类型至少是long,后缀LL(或ll)表示类型是long long,后缀U(或u)表示unsigned类型。

浮点数常量

l  以文字形式出现的实数;

l  一般形式:

n  例如,12.5-12.5等。

l  指数形式:

n  例如,0.345E+2-34.4E-3

n  整数部分和小数部分可以省略其一。

l  浮点常量默认为double型,如果后缀F(或f)可以使其成为float型,例如:12.3f

 

字符常量

l  单引号括起来的一个字符,如:'a''D''?''$'

l  C++转义字符列表(用于在程序中表示不可显示字符)

 

5.png

 

C风格字符串常量

批注 2020-03-03 174610.png


例:

6.png

通过添加前缀可以改变字符常量或者字符串常量的类型,前缀及其含义如下表所示:

7.png

 

变量:在程序的运行过程中,其值可变的量

l  变量定义

n  数据类型    变量名1, 变量名2, ..., 变量名n;

l  初始化

n  C++语言中提供了多种初始化方式;

n  例如:

int a = 0;

int a(0);

int a = {0};

int a{0};

其中使用大括号的初始化方式称为列表初始化,列表初始化时不允许信息的丢失。例如用double值初始化int变量,就会造成数据丢失。

 

符号常量

l  常量定义语句的形式为:

n  const 数据类型说明符  常量名=常量值;

或:

n  数据类型说明符  const  常量名=常量值;

l  例如,可以定义一个代表圆周率的符号常量:

n  const float PI = 3.1415926

l  符号常量在定义时一定要初始化,在程序中间不能改变其值。


下一节:程序举例

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

基本数据类型、常量、变量课程教案、知识点、字幕

大家好

欢迎继续学习C++语言程序设计

下面我们来介绍

数据类型常量和变量

我们要能够在程序中表示数据

使用数据

那么就要能够将现实中的

一些数据反映到程序中来

那么C++程序

支持哪些数据类型呢

它支持的数据类型

包括整数类的 浮点数类的

也就是实数类的

还有字符 还有布尔类型

也就是逻辑值

程序中的数据呢

包括常量和变量

所谓常量就是在程序的

整个运行过程中

它的值都不允许被改变的量

那么变量顾名思义

就是它的值在程序的运行过程中

是可以改变的

而且往往是需要改变的

那么整数类型的数据呢

实际上是一大类

分成好多种不同的整型

基本整数类型是int类型

int类型它的字节数

也就是一个int类型

能有多少个字节

这个在C++标准中并没有规定

它是与机器字长相关的

我们也称它为基本整型

那么除此之外呢

还可以按照有符号和无符号之分

我们知道现实中

我们用整数表示的数据

有些数据它是有可能正

有可能负的

而有些数据那肯定就

不可能是负值

那么在有些情况下

如果我们知道这个数据

它不可能取负值的话

我们就可以用

C++里面的无符号整数

它有unsigned这样一个前缀

可以说明这个整数类型

是无符号的

那么相对来说呢

另外一种就是有符号的 signed那么有符号这个关键字呢

经常就省略不写

默认是有符号的

按照它表示数据的范围

也就是所算的字节数不同

它又分成短整型short

和长整型long

和长长整型long long类型

分成这样一些类型

那么在C++标准中并没有规定

每一种类型

每一种整数类型必须占多少字节

它只是规定了它们之间的

一个关系

也就是short类型

它不会宽于基本整型

而long long long类型

它不会窄于基本整型

而每个不同的编译器呢

实现的时候采用的方案

可能会不一样

那另外呢 字符类型在C++中

本质上它里面存放的也是整数

我们第1章讲过

字符数据在计算机内部

是按编码表示的

那么一个字符编码

实际上我们也就可以认为

它是一个整数

大多数系统里面呢

是按ASCII码来编码的

每一个单个的字符占一个字节

ask码是一个七位二进制码

那么一个字节是8位

刚好放得下一个字符的编码

基本数据类型中

还包括了一组实数类型

我们称它为浮点类型

因为实数在计算中

都是用浮点方式表示的

有基本的浮点类型double

双精度的 单精度的float

还有long double

同样C++标准也没有规定

它们各自占多少个字节

只是float的字节数

不应该超过double

long double字节数

不会少于double

然后不同的系统呢

也可能会有不同的实现

那么当我们要存储字符的时候

当然首选这个char类型

是character的缩写

它是字符类型

是单字节的数据类型里面

正好存放一个字符的编码

另外呢还有字符串

在C++中有字符串常量

也就是双引号里面的一串字符

是字符串常量

但是C++的基本数据类型中

没有字符串变量

那内容可变的字符串放在哪儿呢

怎么表示和存储呢

在C语言中是用字符数组

来存放字符串的

在第6章我们会介绍

C++也继承了这一点

所以我们把双引号里面的字符串

另外还有用字符数组

存放的字符串变量都称作

C风格的字符串

C风格的字符串在C++中呢

已经不鼓励使用了

那么C++中

用什么样的变量来存放字符串呢

在C++的标准库里面

有一个String类

我们可以用这个类的对象

来存放字符串

而且这个类提供了很多

非常有用的字符串操作功能

这些也会在第6章

详细的给大家介绍

还有一类数据呢

是表示逻辑值真假的

我们叫它布尔类型

那么布尔类型的数据

它的取值只能是真或者假

就是true或者false两种

这张表上列出来了

在C++中的基本数据类型

以及它们占的字节数

还有它们的表示数据的范围

并不是所有系统里面都是这样的

所以这只是特定的编译环境下

它是这样的一种规定

那么同学们如果用不同的

编译环境的话

你可以去测试一下

或者看一下你编译器的说明书

就知道在你用的系统里面

这些数据类型

它们分别占多少字节

表示范围是多少

接下来我们来看一下

各种类型的常量

所谓常量呢

就是在程序的执行过程中

它的值始终不可变的量

那么什么是始终不可变的量

首先

就是我们直接写出来的文字常量

比如说我们写出来

单引号中的一个字符

或者一个数字

那么既然已经写在这儿了

就是它了

是不可能再被改变的了

这就是文字常量

整数类型的常量呢

它又分十进制 八进制

和十六进制形式的

那么十进制的常量

可以由0到9这些数字

以及它们的组合构成

当然八进制的整数常量

文字常量里面

就只会出现数字0到7

那么十六进制的呢

除了数字0到9以外

从10开始就用字母了

就是A了

A B C D E F合起来

那么这些就是

不同的进制的整数常量

那整数 比如十进制的整数

它有可能是正数

有可能是负数

正数那就是它绝对值本身了

如果是要表示

十进制的一个负整数常量

那就在常量之前

加一个负号就可以了

在常量之后呢

我们还可以写后缀

后缀U表示unsigned

L表示常整数long

还有其他的后缀

大家可以看一下这个地方的说明

自己写程序的时候试着用一用

那么浮点类型的常量

也有两种表现形式

一种是小数形式

我们熟悉的有整数部分

小数点 小数部分

但是对于特别大和特别小的数呢

我们还可以采用另外一种形式

就是我们熟悉的

这种科学技术法的形式

带这里我们叫它指数形式

前面一部分呢

是它的尾数部分

然后是十的方次是指数部分

那么字符常量就是单引号

括起来的一个字符

它在内存中的存储形式

应该存的就是这个字符的ask码

那有些字符属于特殊字符

在屏幕上没办法显示的

比如说响铃 比如说回车

你打一个回车字符

它达到换行的效果了

那么这些字符怎么表示呢

我们可以用这种表里面给出的

这个转译字符来表示

字符串常量呢

又分成C风格的字符串

以及我们以后要讲的

这个string类的对象

它也可以是常对象

也可以有常量 也可以有变量

那最简单的这个C风格的字符串

是怎么构成的呢

它的形式上

就是双引号里面的一串字符

它在内存里面的存储形式是什么

是字符的ask码依次连续存放

在最后的末尾用一个0

作为结束标记

那么哪怕你的字符串里面

只有单个字符

它末尾也是有一个0

作结束标记的

比如说双引号里面的a

和单引号里面的a它就是不同的

双引号里面的a

是一个字符串

它有一个字符

还有一个0作结束标记

而单引号a

就只表示这一个单独的字符

那么通过在字符串常量

前面加前缀呢

也可以改变这个字符串常量

它的类型

那么大家可以参考这张表

有了常量呢

我们还需要变量

很多时候我们需要把常量

存放到变量中去

更多的时候呢

这个变量是在运行的时候

用来接收计算结果

用来接收用户输入的数据的

变量是在程序的运行过程中

它的值可变的量

实际上呢变量也就是一个名字

结合到一组内存单元

我们的程序要用内存单元

去存放数据 怎么用呢

当然可以用地址

确实C语言

C++语言都可以用地址

我们后面会讲

但是用地址毕竟不是很方便

所以在高级语言中

有一种通用的办法

就是用变量名

可以用定义变量的方式

来使用内存空间

在定义变量的时候呢

也可以同时给变量进行初始化

定义变量首先是要规定

这个变量它属于什么类型的

这样的编译器也就知道

要给它多少字节的空间

那么得到这个字节空间以后

它的初始值是什么状态呢

根据这个变量所在的位置不同

它的初始状态会不一样的

如果是在所有函数之外

定义的变量它叫全局变量

如果不给它初始化

它会自动的有一个基础的初始值

比如说数值型的它会是0

这个在第5章我们还会详细介绍

如果是在函数体内部的局部变量

你定义的时候不给它初始化

它的值就是不确定的

可能是垃圾数据

所以在定一个变量的时候

对变量进行初始化

是一个很好的习惯

在C++中呢

初始化一个变量

有四种可用的形式

一种是用等号一样的符号

表示用右边的值去初始化

左边的变量

另一种是用圆括号

在定义变量之后接一个圆括号

圆括号之中给出变量的初始值

还有我们可以用大括号

用大括号也有两种方式

那么这个是初始化列表的形式

使用这种初始化列表的形式呢

这种初始化过程

就不允许有数据丢失

什么叫数据丢失呢

比如说你用double类型

去初始化一个int类型

那么肯定就有数据丢失了

至少它的小数部分是丢失掉了

那而且double类型的表示数据

范围更宽

也许连整数部分在int里面

都放不下呢

所以你要用初始化列表的

这种大括号的形式呢

你就不能有这样的情况发生

我们前面介绍过有文字常量

实际上如果只用文字常量

有时候并不方便

比如说我们在程序里面

可能需要用一个圆周率pi

可能开始我们想用3.14

那在程序写好以后

可能因为精度的要求

我们想提高精度

就把pi统一改成3.14159

那这种情况下

你能在程序的各个地方都保证

同步都做修改吗

哪个地方如果没有改的话

那整个前后所用的数据

就不一致了

所以在这种情况下呢

我们可能选择用符号常量更方便

所谓符号常量

它就像定义变量一样

也可以定义

然后给它进行初始化

它也有名字

我们看这一举的例子

但是它与变量相比较呢

前面多了一个const来修饰

表示这个名字它的定义过程

虽然跟变量一样

要跟一组内存空间来结合

定义之后呢

可以用这个名字来访问

这组内存空间

但是有了这么一个const

这种访问就是只读的了

它只能用 不能修改

那么好 只能用不能修改

那它的值在什么时候获得呢

当然你不能在定义之后

再从键盘输入值去给它

必须在定义的时候就给它初始值

如果定义的时候

你不给它初始值 系统会报错的

C++语言程序设计基础课程列表:

第1章 绪论

-导学

--第1章导学

-计算机系统简介

--计算机系统简介

--计算机系统简介 测试题

-计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展 测试题

-面向对象的基本概念

--面向对象的基本概念

--面向对象的基本概念 测试题

-程序的开发过程

--程序的开发过程

--程序的开发过程 测试题

-信息的表示和储存

--计算机中的信息与存储单位

--计算机的数字系统

--数据的编码表示

--信息的表示和储存 测试题

-实验指导

--实验一:VS开发环境介绍

第2章 C++简单程序设计(一)

-导学

--第二章导学

-C++语言概述

--C++的特点和程序实例

--C++字符集和词法记号

--C++语言概述 测试题

-基本数据类型、常量、变量

--基本数据类型、常量、变量

--程序举例

--基本数据类型、常量、变量 测试题

-运算与表达式

--算术运算与赋值运算

--逗号运算、关系运算、逻辑运算和条件运算

--Sizeof运算、位运算

--运算优先级、类型转换

--运算与表达式 测试题

-实验二:简单程序设计(上)

--实验二:简单程序设计(上)

第2章 C++简单程序设计(二)

-数据的输入和输出

--数据的输入和输出

--数据的输入和输出 测试题

-选择结构

--if语句

--switch语句

--选择结构 测试题

-循环结构

--循环结构——while语句

--do-while语句

--for语句

--嵌套的控制结构、其他控制语句

--循环结构 测试题

-自定义类型

--自定义类型

--自定义类型

-第2章小结

--第二章小结

-实验二:C++简单程序设计(下)

--实验二C++简单程序设计(下)

第3章 函数

-导学

--导学

-函数定义

--函数定义

--函数定义 测试题

-函数调用

--函数调用(例3-1)

--例3-2

--例3-3

--例3-4

--例3-5

--例3-6

--函数调用 测试题

-嵌套与递归

--函数的嵌套调用(例3-7)

--函数的递归调用(例3-8)

--例3-9

--例3-10

--嵌套与递归 测试题

-函数的参数传递

--函数的参数传递

--函数的参数传递 测试题

-引用类型

--引用类型(例3-11)

--引用类型 测试题

-含有可变参数的函数

--含有可变参数的函数

--含有可变参数的函数 测试题

-内联函数

--内联函数(例3-14)

--内联函数 测试题

-constexpr函数

--constexpr函数

--CONSTEXPR函数课后习题

-带默认参数值的函数

--带默认参数值的函数

--默认参数值例(3-15)

--带默认参数值的函数 测试题

-函数重载

--函数重载(例3-16)

--函数重载 测试题

-C++系统函数

--C++系统函数(例3-17)

--C++系统函数习题

-第3章小结

--第三章小结

-实验三(上)函数的应用

--实验三(上)函数的应用

-实验三(下)函数的应用

--实验三(下)函数的应用

第4章 类与对象

-导学

--导学

-面向对象程序的基本特点

--面向对象程序的基本特点

--面向对象程序的基本特点 测试题

-类和对象

--类和对象的定义

--类和对象的程序举例

--类和对象 测试题

-构造函数

--构造函数基本概念

--构造函数例题(1)——例4-1

--构造函数例题(2)——例4-2

--委托构造函数

--复制构造函数

--复制构造函数调用举例

--构造函数 测试题

-析构函数

--析构函数

--析构函数 测试题

-类的组合

--类的组合

--类的组合程序举例

--前向引用声明

--类的组合 测试题

-UML简介

--UML简介

--UML简介课后习题

-结构体与联合体

--结构体(例4-7)

--联合体(例4-8)

--结构体与联合体 测试题

-枚举类

--枚举类

--枚举类 测试题

-第4章小结

--第四章小结

-实验四(上)

--实验四(上)

-实验四(下)

--实验四(下)

第5章 数据的共享与保护

-导学

--导学

-标识符的作用域与可见性

--标识符的作用域与可见性

--标识符的作用域与可见性 测试题

-对象的生存期

--对象的生存期

--对象的生存期 测试题

-类的静态成员

--静态数据成员(例5-4)

--静态函数成员(例5-5)

--类的静态成员 测试题

-类的友元

--类的友元(例5-6)

--类的友元 测试题

-共享数据的保护

--共享数据的保护(例5-7)

--共享数据的保护 测试题

-多文件结构和预编译命令

--多文件结构和预编译命令(例5-10)

--多文件结构和预编译命令 测试题

-第5章小结

--小结

-实验五

--实验五

第6章 数组、指针与字符串(一)

-导学

--导学

-数组的定义与初始化

--数组的定义与使用

--数组的储存与初始化

--一维数组应用举例

--数组的定义与初始化 测试题

-数组作为函数的参数

--数组作为函数参数(例6-2)

--数组作为函数的参数 测试题

-对象数组

--对象数组

--对象数组 测试题

-基于范围的for循环

--基于范围的for循环

-指针的定义和运算

--指针的概念、定义和指针运算

--指针的初始化和赋值

--指针的算术运算、关系运算

--指针的定义和运算 测试题

-综合实例

--综合实例

-实验六(上)

--实验六上

第6章 数组、指针与字符串(二)

-指针与数组

--用指针访问数组元素

--指针数组

--指针与数组 测试题

-指针与函数

--以指针作为函数参数

--指针类型的函数

--指向函数的指针

--指针与函数 测试题

-对象指针

--对象指针

--对象指针 测试题

-动态内存分配

--动态分配与释放内存

--申请和释放动态数组(一)

--申请和释放动态数组(二)

--动态内存分配 测试题

-智能指针

--智能指针

-vector对象

--vector对象

--vector对象 测试题

-对象复制与移动

--深层复制与浅层复制

--移动构造

--对象复制与移动 测试题

-字符串

--C风格字符串

--string类

--字符串 测试题

-第6章小结

--第六章小结

-综合实例

--综合实例

-实验六(下)

--实验六(下)

基本数据类型、常量、变量笔记与讨论

也许你还感兴趣的课程:

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