当前课程知识点:C++语言程序设计基础 > 第2章 C++简单程序设计(一) > 基本数据类型、常量、变量 > 程序举例
程序举例
l 主要知识点:
n 常量
u 在源程序中直接写明的数据,其值在整个程序运行期间不可改变,这样的数据称为常量。
n 变量
u 在运行过程中从计算机的外部设备(例如键盘、硬盘)读取的,这些数据的值在程序运行过程中允许改变,这样的数据称为变量
n 从键盘输入数据
u iostream类的对象cin的>>操作,可以从标准输入设备(通常是键盘)读入数据
n 数据的存储
u 为了存储数据,需要预先为这些数据分配内存空间。
u 变量的定义就是在给变量命名的时候分配内存空间。
l 源代码
#include <iostream>
using namespace std;
int main()
{
int radius;
cout<<"Please enter the radius!\n";
cin>>radius;
cout<<“The radius is:”<<radius<<‘\n’;
cout<<“PI is:”<<3.14<<‘\n’;
cout<<"Please enter a different radius!\n";
cin>>radius;
cout<<"Now the radius is changed to:"
<<radius<<‘\n’;
return 0;
}
l 主要知识点:符号常量
l 源代码
#include <iostream>
using namespace std;
int main()
{ const double pi(3.14159);
int radius;
cout<<"Please enter the radius!\n";
cin>>radius;
cout<<"The radius is:"<<radius<<'\n';
cout<<"PI is:"<<pi<<'\n';
cout<<"Please enter a different radius!\n";
cin>>radius;
cout<<"Now the radius is changed to:"<<radius<<'\n';
cout<<"PI is still:"<<pi<<'\n‘;
//cin>>pi;
return 0;
}
l 运行结果:
Please enter the radius!
2
The radius is:2
PI is:3.14159
Please enter a different radius!
3
Now the radius is changed to:3
PI is still:3.14159
l 主要知识点:变量的初始化
n 虽然变量的值是可以在运行时获得的,但是在定义变量时也可以进行初始化,而且应该提倡进行初始化;
n 未经初始化的变量,其值可能是随机的。如果误用了未经初始化也没有给予确定值的变量,就会引起错误。
l 源代码
#include <iostream>
using namespace std;
int main()
{
const double pi(3.14159);
int radius(0);
cout<<"The initial radius is:"<<radius<<'\n';
cout<<"PI is:"<<pi<<'\n‘; 。
cout<<"Please enter a different radius!\n";
cin>>radius;
cout<<"Now the radius is changed to:"<<radius<<'\n';
cout<<“PI is still:”<<pi<<‘\n’;
return 0;
}
欢迎接续学习C++语言程序设计
下面来给大家演示一个实例
好 这个例子是一个补充的例题
以后在这个课程中
我的题号有补充几几的
这些在我的教材上就没有
大家可以参考
我在网上给的学习资料
这个例题就是读入并显示整数
在里面用到的主要知识点
就是用到了常量
常量是在语言程序中
直接写明了数据
还用到了变量
还用到了从键盘输入数据的
这个操作
我们在此之前看到了
怎么样用cout向显示器输出数据
那么在这个例题中呢
我们将要使用iostream类的
预定义好的对象cin
它的提取操作
这个提取操作呢
是从键盘的输入流中提取数据
也叫做标准输入流类的对象
那另外呢 这里面我们还用到了
数据的存储
为了存储数据呢
要为这些数据来分配存储空间
变量定义实际上就是给数据
分配存储空间
好 现在我们来看这段程序代码
我们看到在主函数中
首先定义了一个变量radius
这个变量定义之后并没有初始化
效果会是什么呢
等一会我们会在编译环境中看
然后接下来输入一行提示信息
然后从键盘读入值
放到radius里面
由cin这个对象的提取操作符
来达到这个效果的
然后接下来又是输出提示信息
The radius is
接着我们看到
把radius这个变量自己放到
插入运算符后面去了
也就是放到这个cout
所代表的输出流里面去了
插到输出流里面去
它就送到显示器上了
然后接下来呢
再输出提示信息以及3.14
这个常量
它们都会显示到显示器上
那么后面再输出一行提示信息
请用户输入一个不同的
radius变量值
所以这个地方充分体现了
radius它就是一个变量
可以再次
从键盘读入一个不同的值
放到radius里面
然后我们用cout再输出radius
进行一下验证
好 现在呢
我在这个编译环境中
给大家演示一下这个运行的过程
那么这回我们使用单步调试
在这个调试窗口底下呢
大家看有一个逐过程
有个逐语句
f10是一行一行的直行
等我们学了第3章的函数以后
我会教大家用f11
追踪到函数里面
目前我们用这个热键f10
或者这个菜单项都可以
好 那么进来执行了一个单步了
执行了一个单步
这个时候大家看radius这个变量
是在这儿
但是它的值是无效的数据
不确定的数据
也就是以前碰巧里面
有什么垃圾数据就是什么
那么再走一步
现在我们看radius里面的值
仍然是不确定的
那在这个地方呢
输出一个提示信息
走一步以后我们看一下这个效果
现在这个提示信息已经在这个
命令行窗口中出来了 第一行
Please enter the radius出来了
接下来再执行这一步
再执行一步的话
我们就需要从键盘输入了
大家看执行到这儿
停在这儿等什么呢
等我们在这个窗口
输入一个radius值
比如说我给一个5 回车
大家看现在radius里面有值了
这是5 从键盘读入了
那接下来呢 再往下走一步
我们准备要输出什么 3.14了
在这之前 应该radius输出去了
我们再看一下
The radius is 5 有了
那我们准备输出3.14这个常量了
我们再对照看一下3.14在这儿
有了
接下来再输出一个提示信息
再走一行
就是请输入一个不同的radius值
那现在这个光标
黄色的箭头停在这个前面
表示这一行还没有执行
那么我们必须要再走一步
f10再走一步
它就等我们来输入了
这回比如说我输一个7
然后回车
大家看 这个radius它变成7了
看到变量里面的值变了
现在再输出一行的话
我们就看到运行最终的结果了
我们看到最终这个7
也输出出来了
好 现在呢我们再看一个例子
这个是为常量来命名
也就是说在这里
我们要用符号常量
我们看在主函数
也就是main函数的第一行
定义了一个double类型的常量pi
在double这个数据类型前面
有个const
说明这个pi是一个常量
它必须给一个初始值
这点我们给的3.14159
那其他的部分呢
跟前面的一个补充2_1的
那个例题是类似的
我就不再解释了
那接下来我在这个编译环境中
给大家演示一下
这个常量初始化的效果
好 现在我们在这个编译环境中看一下
这是一个常量的定义
在我return这个语句前面
设了一个断点
这样我就可以用f5
来开始这个调试
并且一直运行到断点情况为止
好 那么现在呢
我们看请输入一个radius值
我们输入一个5 回车
又输入另外一个
跟刚才一样输入一个7 回车
我们看这个pi值
它里面是3.14 什么
我们怎么看到里面
存的是3.1415899999
明明给它这3.14159吗
这个数据
都不能准确地存在里面吗
这是一个很好的例子
大家看到了浮点数在机器里面
是近似存储的
所以它可能会跟你期望的这个值
有少许的差别
所以千万不要在程序中
去比较两个浮点数它是否相等
比如说你认为它应该是相等的
但是它可能有少许的差别
它就不相等了
浮点数都是近似存储的
那么当我们要比较两个浮点数
是否相等的时候
一般是比较它们两个
相减的差是不是充分小
充分小就认为它相等了
这个后面
大家还会遇到这种情况的
现在我们想验证一个什么呢
制造一个错误
这个地方我试图修改一下
不给这个pi初始化看看会怎么样
现在先停止调试
然后我把这个给删掉
好 定义了pi 没有初始化
那我再重新编译
再重新编译这个项目 重新生成
大家看有错误信息了
提示这个pi如果不是外部的
当然我们这个不是外部
是在这里面定义的
则必须初始化常对象
所以这个就不能通过
是要初始化的
那好 现在我把它再加回来
那我再次重新生成
也就是重新编译连接
现在就成功了 现在就成功了
那么如果说我试图在程序中
比如说最后我加一行
重新定义pi pi行不行呢
这个pi有名字吗
我就给它赋值了
看看这回编译能不能通过
大家看 不能给常量赋值
又出错误信息了
所以常量虽然它有名字
跟变量一样有名字
但是你不能在程序中
改变它的值 必须初始化
而一旦初始化以后
它的值是不能再被改变的了
好 恢复以后再重新生成
这回就正确了
好 下面我再讲一个例题
演示这个变量在定义的同时
进行初始化
下面我再这个编译环境中
给大家演示这个例题
好 现在我们来看一下这个程序
跟刚才这个程序是类似的
只不过呢 这回我定义这个变量
radius的时候
也给它了一个初始值是0
给了初始化值以后呢
还是可以从键盘去输入
去改变这个值的
我们简单运行一步看一下
好 现在我们来看到
常量的初始化了
继续往下再走一步
看到这回这个变量radius的值
它就是0了 这就有0这个值了
至于变量在定义的时候
也可以这样初始化的
-导学
--第1章导学
-计算机系统简介
--计算机系统简介
--计算机系统简介 测试题
-计算机语言和程序设计方法的发展
--计算机语言和程序设计方法的发展 测试题
-面向对象的基本概念
--面向对象的基本概念 测试题
-程序的开发过程
--程序的开发过程
--程序的开发过程 测试题
-信息的表示和储存
--计算机的数字系统
--数据的编码表示
--信息的表示和储存 测试题
-实验指导
-导学
--第二章导学
-C++语言概述
--C++语言概述 测试题
-基本数据类型、常量、变量
--程序举例
--基本数据类型、常量、变量 测试题
-运算与表达式
--运算与表达式 测试题
-实验二:简单程序设计(上)
-数据的输入和输出
--数据的输入和输出
--数据的输入和输出 测试题
-选择结构
--if语句
--switch语句
--选择结构 测试题
-循环结构
--for语句
--循环结构 测试题
-自定义类型
--自定义类型
--自定义类型
-第2章小结
--第二章小结
-实验二:C++简单程序设计(下)
-导学
--导学
-函数定义
--函数定义
--函数定义 测试题
-函数调用
--例3-2
--例3-3
--例3-4
--例3-5
--例3-6
--函数调用 测试题
-嵌套与递归
--例3-9
--例3-10
--嵌套与递归 测试题
-函数的参数传递
--函数的参数传递
--函数的参数传递 测试题
-引用类型
--引用类型 测试题
-含有可变参数的函数
--含有可变参数的函数 测试题
-内联函数
--内联函数 测试题
-constexpr函数
--CONSTEXPR函数课后习题
-带默认参数值的函数
--带默认参数值的函数 测试题
-函数重载
--函数重载 测试题
-C++系统函数
--C++系统函数习题
-第3章小结
--第三章小结
-实验三(上)函数的应用
-实验三(下)函数的应用
-导学
--导学
-面向对象程序的基本特点
--面向对象程序的基本特点 测试题
-类和对象
--类和对象的定义
--类和对象 测试题
-构造函数
--构造函数基本概念
--委托构造函数
--复制构造函数
--构造函数 测试题
-析构函数
--析构函数
--析构函数 测试题
-类的组合
--类的组合
--类的组合程序举例
--前向引用声明
--类的组合 测试题
-UML简介
--UML简介
--UML简介课后习题
-结构体与联合体
--结构体与联合体 测试题
-枚举类
--枚举类
--枚举类 测试题
-第4章小结
--第四章小结
-实验四(上)
--实验四(上)
-实验四(下)
--实验四(下)
-导学
--导学
-标识符的作用域与可见性
--标识符的作用域与可见性 测试题
-对象的生存期
--对象的生存期
--对象的生存期 测试题
-类的静态成员
--类的静态成员 测试题
-类的友元
--类的友元 测试题
-共享数据的保护
--共享数据的保护 测试题
-多文件结构和预编译命令
--多文件结构和预编译命令 测试题
-第5章小结
--小结
-实验五
--实验五
-导学
--导学
-数组的定义与初始化
--数组的定义与使用
--一维数组应用举例
--数组的定义与初始化 测试题
-数组作为函数的参数
--数组作为函数的参数 测试题
-对象数组
--对象数组
--对象数组 测试题
-基于范围的for循环
-指针的定义和运算
--指针的定义和运算 测试题
-综合实例
--综合实例
-实验六(上)
--实验六上
-指针与数组
--指针数组
--指针与数组 测试题
-指针与函数
--指针类型的函数
--指向函数的指针
--指针与函数 测试题
-对象指针
--对象指针
--对象指针 测试题
-动态内存分配
--动态内存分配 测试题
-智能指针
--智能指针
-vector对象
--vector对象
--vector对象 测试题
-对象复制与移动
--移动构造
--对象复制与移动 测试题
-字符串
--C风格字符串
--string类
--字符串 测试题
-第6章小结
--第六章小结
-综合实例
--综合实例
-实验六(下)
--实验六(下)