好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

专业C5讲数据的表示ppt课件.ppt

50页
  • 卖家[上传人]:cl****1
  • 文档编号:584984499
  • 上传时间:2024-09-01
  • 文档格式:PPT
  • 文档大小:766.52KB
  • / 50 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版副标题样式单击此处编辑母版副标题样式•华中农业大学理学院华中农业大学理学院 章章 英英•zy@ C/C++语言程序设计语言程序设计 1/59 •本章比较系统地介绍本章比较系统地介绍C++的语法要素,包括的语法要素,包括– 常量与变量及其引用常量与变量及其引用– 函数函数– 运算符运算符– 语句语句– I/O流格式控制流格式控制– 若干程序模块若干程序模块•本章的内容具有本章的内容具有“资料资料”性质,是性质,是C++语言语法的语言语法的“硬性硬性”规定,是程序设计基础的基础,必须熟记规定,是程序设计基础的基础,必须熟记–完全理解本章的规定需要一个过程(至学期结束前);完全理解本章的规定需要一个过程(至学期结束前);–建议经常地、反复地阅读本章,并自觉应用建议经常地、反复地阅读本章,并自觉应用第五讲第五讲 数据的表示数据的表示2/50 学习方法学习方法 一个人走路,用不着把路上所有的石头搬掉一个人走路,用不着把路上所有的石头搬掉再走有时候要绕过去,等你走远了回头看,看再走有时候要绕过去,等你走远了回头看,看到的只是走过的路,有些石头早已看不见了到的只是走过的路,有些石头早已看不见了。

      ──钱伟长钱伟长3/50 3.1 数据的表示数据的表示• 3.1.1 常量常量• 3.1.2 变量变量• 3.1.3 变量的引用变量的引用• 3.1.4 常量的引用常量的引用4/50 3.1.1 常量常量• 常量常量——其值在程序运行中不允许改变的量其值在程序运行中不允许改变的量– 字面常量字面常量•布尔常量布尔常量– false、、true•字符常量字符常量((单引号包围的单引号包围的1 1个个字符字符))– ‘a’ 、、 ‘A’ 、、‘ ’ 、、 ‘!’– 转义字符转义字符 ‘\n’ 、、 ‘\t’ 、、 ‘ \’’ 、、 ‘\”’ 、、 ‘\\’– ’汉汉’、、’AB’、、’’(多个或(多个或0个字符)是错误的个字符)是错误的•字符串常量字符串常量– “汉字字符串汉字字符串” 、、 “AB” 、、 “ ”5/50 3.1.1 常量常量–字面常量字面常量•整型常量整型常量– 10进制形式进制形式123、、-123– 16进制形式进制形式0x7B、、-0x7B0x开头开头– 8进制形式进制形式0173、、-0173 0开头开头– 长整型数据长整型数据123L、、0x7BL加后缀加后缀L或或l– 无符号整型无符号整型123U、、0x7BU加后缀加后缀U或或u– 无符号长整型无符号长整型 123UL、、0x7BUL6/50 3.1.1 常量常量–字面常量字面常量•浮点型常量浮点型常量– 小数形式小数形式» 123.45、、1.0、、-123.45– 浮点形式浮点形式(科学记数法)(科学记数法)» 1.2345E+2 表示表示 1.2345×102» 12345E-2 表示表示 12345×10-2» 可用小写字母可用小写字母e。

      E或或e前的数字不能省略前的数字不能省略– 默认默认double型,加后缀型,加后缀f表示表示float型字母字母字母字母E E之前必须有数字且之前必须有数字且之前必须有数字且之前必须有数字且E E之后指数必为整数之后指数必为整数之后指数必为整数之后指数必为整数7/50 3.1.1 常量常量–符号常量符号常量const 数据类型数据类型 常量名常量名 = 初始化值;初始化值;常量不能作左值(不能对常量赋值)常量不能作左值(不能对常量赋值)常量只能作右值(可读取访问常量的值)常量只能作右值(可读取访问常量的值)•例如:例如:const double PI = 3.1415926;const char LF = ‘\n’; // 换行字符换行字符 const unsigned long MAX_NUMBER=10000;•使用符号常量的好处:使用符号常量的好处:1.1.增加程序的可读性;增加程序的可读性;2.2.便于调试程序便于调试程序8/50 3.1 数据的表示数据的表示• 3.1.1 常量常量• 3.1.2 变量变量• 3.1.3 变量的引用变量的引用• 3.1.4 常量的引用常量的引用9/50 3.1.2 变变量量• 实际应用的需要实际应用的需要–数据的本质数据的本质• 应用问题的表达、载体应用问题的表达、载体–算法的本质算法的本质• 控制数据的变化控制数据的变化 ——— 问题的求解历程问题的求解历程 ((初值初值→→中间结果中间结果→→解)解)• 对计算机的要求对计算机的要求–能存放能存放((读读/ /写写))大量数据大量数据(Memory,内存,内存)• 数据(变量)的载体数据(变量)的载体–能对数据进行基本运算能对数据进行基本运算(CPU,中央处理器,中央处理器)• 数据(变量)加工的场所数据(变量)加工的场所10/50 3.1.2 变变量量• 对计算机高级语言的要求对计算机高级语言的要求–抽象性抽象性• 屏蔽具体的内存操作细节,屏蔽屏蔽具体的内存操作细节,屏蔽CPU操作细节;操作细节;–易用性易用性• 用用变量名称变量名称(标识符标识符)表示计算机表示计算机内存内存单元的内容(数据)单元的内容(数据)• 用用右值右值表达式表示从内存单元表达式表示从内存单元读取读取数据数据• 用用左值左值表达式表示表达式表示写入写入数据到内存单元数据到内存单元• 用用运算符运算符表示对数据的表示对数据的操作操作–灵活性、安全性、内存利用效率灵活性、安全性、内存利用效率• 数据的生命期(创建、销毁)数据的生命期(创建、销毁)• 可见性(读写访问权限)可见性(读写访问权限)11/50 3.1.2 变变量量• 变量变量——其值在程序运行中可以被改变的量其值在程序运行中可以被改变的量– 它存放在计算机内存它存放在计算机内存– 它可以被读取它可以被读取(作右值作右值)、写入新值、写入新值(作左值作左值)•变量名成为其对应内存单元的抽象变量名成为其对应内存单元的抽象• 各个变量之间的关系各个变量之间的关系– 实际问题中实际问题中•关联密切关联密切– 计算机程序中计算机程序中•相互独立相互独立– 没有联动机制,由程序员精心控制没有联动机制,由程序员精心控制12/50 例如:计算圆面积例如:计算圆面积• (数学题)计算公式(数学题)计算公式– 若若 ,则,则– 若若 ,则,则 #include using namespace std; int main()// 错误的程序错误的程序 { const double PI = 3.1415926; double r, s; s = PI * r * r; //r的值不可预知的值不可预知,不宜直接作右值不宜直接作右值 cout << r << endl; //因而因而s所获得的值亦无实际意义所获得的值亦无实际意义 r = 10; cout << s << endl; //s与与r相互独立,不可能联动相互独立,不可能联动 r = 20; cout << s << endl; //s无变化无变化 return 0; }13/50 #include using namespace std; int main()// 正确的程序正确的程序 5-1.cpp { const double PI = 3.1415926; double r, s; r = 10; cout << r << endl;// 输出输出 10 并换行并换行 s = PI * r * r;// 根据当前的根据当前的r计算计算s的值的值 cout << s << endl;// 输出输出 314.159 并换行并换行 r = 20; s = PI * r * r;// 根据当前的根据当前的r重新计算重新计算s cout << r << ”,,” << s << endl;// 输出输出 20,,1256.64换行换行 return 0; }14/50 3.1.2 变变量量• 变量变量——其值在程序运行中可以被改变的量其值在程序运行中可以被改变的量– 变量必须先定义、后使用变量必须先定义、后使用•定义变量意味着为该变量分配内存空间定义变量意味着为该变量分配内存空间– 变量定义需要确定其变量定义需要确定其 5 要素:要素:1.存储类型存储类型(决定变量的生命期、可见性决定变量的生命期、可见性)2.数据类型数据类型(决定变量的存储格式、取值范围决定变量的存储格式、取值范围)3.变量名变量名(“小小精灵精灵”的名字的名字)4.变量的初始值变量的初始值(“小小精灵精灵”的初态的初态)5.变量的地址变量的地址(由系统确定,见第由系统确定,见第5章章)15/50 变量定义的格式变量定义的格式• 变量定义语句变量定义语句 存储类型存储类型 数据类型数据类型 变量名变量名 = 初始化值;初始化值;• 程序中何处可以定义变量?程序中何处可以定义变量?–在所有的函数之外在所有的函数之外•全局变量全局变量 存储类型存储类型 缺省缺省•静态全局变量静态全局变量 存储类型存储类型 static–在某函数之内在某函数之内•静态局部变量静态局部变量 存储类型存储类型 static•局部(自动)变量局部(自动)变量 存储类型存储类型 auto 或者或者 缺省缺省存放在存放在全局数据区全局数据区存放在栈区存放在栈区16/50 1. 变量的存储类型变量的存储类型• 一个程序在操作系统控制下启动执行时,由操作系一个程序在操作系统控制下启动执行时,由操作系统分配给统分配给该程序该程序一定的内存空间,包括:一定的内存空间,包括:– 代码区代码区•存放程序代码(体现冯存放程序代码(体现冯·诺依曼的诺依曼的“存储程序存储程序”思想)思想)– 数据区数据区•全局数据区、常量池全局数据区、常量池–存放全局变量、静态全局变量存放全局变量、静态全局变量–静态局部变量、一些常量静态局部变量、一些常量•栈区栈区–存放局部(自动)变量存放局部(自动)变量•堆区堆区–存放动态变量存放动态变量代码区代码区((code area))全局数据区全局数据区((data area))常量池常量池栈区栈区((stack area))堆区堆区((heap area))17/50 规定:全局变量规定:全局变量• 在所有函数之外定义、缺省存储类型的变量在所有函数之外定义、缺省存储类型的变量 称为全局变量。

      称为全局变量– 全局变量存放在全局数据区中;全局变量存放在全局数据区中;– 全局变量在主函数执行之前产生、主函数结束后被销毁全局变量在主函数执行之前产生、主函数结束后被销毁 (即:全局变量的(即:全局变量的生命期是全局的生命期是全局的););– 全局变量定义语句之后的所有函数中均可以直接对其进全局变量定义语句之后的所有函数中均可以直接对其进行行读写访问读写访问(即:作用域范围大,可见性强)即:作用域范围大,可见性强)– 使用全局变量不利于程序的移植、维护使用全局变量不利于程序的移植、维护 ((建议:程序中不要使用全局变量建议:程序中不要使用全局变量)– C++语言的一些机制可以消灭程序中的全局变量语言的一些机制可以消灭程序中的全局变量18/50 #include //不好的程序不好的程序 using namespace std; int temp; // 全局变量全局变量 int max(int a, int b, int c) { temp = a; if(b>temp) temp = b; if(c>temp) temp = c; return temp; } int main() { cout << max(2, 5, 3) << endl; return 0; }// 此此函数强烈地依赖于变量函数强烈地依赖于变量temp,不能独立移植到其他程序中,不能独立移植到其他程序中 // 修改了修改了temp的值,可能影响其他部分的值,可能影响其他部分 19/50 #include //5-2.cpp using namespace std; int max(int a, int b, int c) { int temp;// 局部(自动)变量局部(自动)变量 temp = a; if(b>temp) temp = b; if(c>temp) temp = c; return temp; } int main() { cout << max(2, 5, 3) << endl; return 0; }好的代码!好的代码!不依赖于全局变量,不依赖于全局变量,相对独立,便于移植相对独立,便于移植20/50 规定:静态全局变量规定:静态全局变量• 在所有函数之外定义、存储类型为在所有函数之外定义、存储类型为static的变量称的变量称为静态全局变量。

      为静态全局变量– 静态全局变量与全局变量的唯一区别静态全局变量与全局变量的唯一区别•在多文件结构程序中,静态全局变量的作用域仅限于定义其的源在多文件结构程序中,静态全局变量的作用域仅限于定义其的源程序文件(称为编译单元)中,不能跨越源程序文件;程序文件(称为编译单元)中,不能跨越源程序文件;•全局变量可以跨越不同的源程序文件需要在某一个源程序文件全局变量可以跨越不同的源程序文件需要在某一个源程序文件中定义(分配内存空间),而在其他源程序文件中用中定义(分配内存空间),而在其他源程序文件中用“外部参照外部参照访问声明访问声明”即可:即可:•extern 数据类型数据类型 某全局变量名;某全局变量名;•即:一处定义,多处声明即:一处定义,多处声明21/50 规定:静态局部变量规定:静态局部变量• 在函数内定义、存储类型为在函数内定义、存储类型为 static 的变量称为静态的变量称为静态局部变量局部变量– 静态局部变量存放在全局数据区;静态局部变量存放在全局数据区;– 静态局部变量可能不被创建静态局部变量可能不被创建•程序运行时始终不执行定义它的函数程序运行时始终不执行定义它的函数– 静态局部变量静态局部变量最多只被创建、初始化一次最多只被创建、初始化一次•程序运行时,第一调用其所在函数时创建并初始化,其生命期直程序运行时,第一调用其所在函数时创建并初始化,其生命期直到主函数结束后才终止;到主函数结束后才终止;•再次调用其所在函数时,将跳过静态局部变量定义及初始化语句,再次调用其所在函数时,将跳过静态局部变量定义及初始化语句,该变量的当前值为上次退出函数时所保存的值。

      该变量的当前值为上次退出函数时所保存的值•在其所在函数外,静态局部变量处于在其所在函数外,静态局部变量处于“休眠休眠”,不可访问不可访问– 静态局部变量具有静态局部变量具有全局生命期、局部可见性全局生命期、局部可见性22/50 规定:局部变量(自动变量)规定:局部变量(自动变量)•在函数内定义、存储类型为在函数内定义、存储类型为 auto 的变量称为局部变的变量称为局部变量,也称为自动变量量,也称为自动变量–局部变量是程序中使用最多的变量;局部变量是程序中使用最多的变量;–局部变量存放在栈区;局部变量存放在栈区;–生命期生命期•随所在函数调用而创建,随所在函数返回而销毁随所在函数调用而创建,随所在函数返回而销毁–可见性可见性•仅在所在函数内部仅在所在函数内部–初始化初始化•局部自动变量定义时,若未对其进行显式地初始化,则其初始值局部自动变量定义时,若未对其进行显式地初始化,则其初始值是不可预知的;是不可预知的;注注:全局变量、静态全局变量、静态局部变量定义时,若未对其全局变量、静态全局变量、静态局部变量定义时,若未对其进行显式地初始化,系统将其初始化为各位全进行显式地初始化,系统将其初始化为各位全0。

      23/50 #include // Variable_Test.cpp #include “VarExample.h” using namespace std; static float a=800.8f; //静态全局变量静态全局变量 int main() { int a=10000,x=500,n=800;// 局部自动变量局部自动变量 function1(); function2(); function3(); function1(); function2(); function3(); cout<<“in main() : N=”<<::n <<“,n=”<#include "VarExample.h"using namespace std;int n;// 定义全局变量定义全局变量static int a=10000; // 定义静态全局变量定义静态全局变量int function1(){static int a;// 定义静态局部变量定义静态局部变量 0double x=5.5;// 局部自动变量局部自动变量int n=100;// 局部自动变量局部自动变量x++; // 访问局部变量访问局部变量 6.5::n++; // 访问全局变量访问全局变量 1::a++; // 访问静态全局变量访问静态全局变量 10001a = a + ::a + (int)x + ::n + n; //10108cout << "in function1(): N = " << ::n << ", n = " << n // 访问局部变量访问局部变量 << ", A = " << ::a << ", a = " << a // 访问静态局部变量访问静态局部变量 << ", x = " << x << endl;return a;}27/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800main()全局变量全局变量 n静态全局变量静态全局变量 a1000010000静态局部变量静态局部变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n5.5100function1()00当执行到当执行到function1()函数体函数体的第的第3条语句后条语句后function1()28/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800全局变量全局变量 n静态全局变量静态全局变量 a10001静态局部变量静态局部变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n6.5100110108当执行到当执行到function1()函数体函数体的最后一条语句时的最后一条语句时main()function1()function1()29/50 // VarExam2.cpp#include #include "VarExample.h"using namespace std;static double a=200.5; // 定义一个静态全局变量定义一个静态全局变量double function2(){static double a=2.71828; // 定义一个静态局部变量定义一个静态局部变量int x = 200;a += ++n + ++x;cout << "in function2(): N = " << n //全全 << ", x = " << x // 局局 << ", A = " << ::a // 静全静全 << ", a = " << a << endl; // 静局静局return a;}30/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800全局变量全局变量 n静态全局变量静态全局变量 a10001function2()1main()当执行到当执行到function2()函数体的第二条语句时函数体的第二条语句时静态局部变量静态局部变量 a局部自动变量局部自动变量 x2002.71828静态全局变量静态全局变量 a200.5静态局部变量静态局部变量 a10108function1()function2()function1()31/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800全局变量全局变量 n静态全局变量静态全局变量 a10001function2()2main()当执行到当执行到function2()函数体的最后一条语句时函数体的最后一条语句时静态局部变量静态局部变量 a局部自动变量局部自动变量 x201205.71828静态全局变量静态全局变量 a200.5静态局部变量静态局部变量 a10108function1()function2()function1()32/50 void function3(){double a=3.1415926;static char x='C';int n = 300;::a++; //201.5x++; //68a = a + ::a + n + ::n + x;cout << "in function3(): N = " << ::n //全全 << ", n = " << n // 局局 << ", A = " << ::a // 静全静全 << ", a = " << a // 局局 << ", x = " << x << endl; // 静局静局}33/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800全局变量全局变量 n静态全局变量静态全局变量 a10001function3()2main()当执行到当执行到function3()函数体的第三条语句时函数体的第三条语句时局部自动变量局部自动变量 a静态局部变量静态局部变量 xC3.1415926300局部自动变量局部自动变量 n静态全局变量静态全局变量 a200.5function1()function2()function1()静态局部变量静态局部变量 a1010834/50 800.8静态全局变量静态全局变量 a局部自动变量局部自动变量 a局部自动变量局部自动变量 x局部自动变量局部自动变量 n10000500800全局变量全局变量 n静态全局变量静态全局变量 a100012main()当执行到当执行到function3()函数体的最后一条语句时函数体的最后一条语句时局部自动变量局部自动变量 a静态局部变量静态局部变量 xD574.6415926201.5300局部自动变量局部自动变量 nfunction3()function1()function2()function1()静态全局变量静态全局变量 a静态局部变量静态局部变量 a1010835/50 •第二轮依序调用三个第二轮依序调用三个function函数的变化过程函数的变化过程•同学们自行分析同学们自行分析分析讨论分析讨论36/50 同名变量的屏蔽同名变量的屏蔽• 背景背景– 众人集体开发软件众人集体开发软件(不同的人员参与)(不同的人员参与)– 大型软件大型软件(程序功能模块多,关系复杂)(程序功能模块多,关系复杂)– 利用已有代码或库利用已有代码或库(黑箱)(黑箱)• 同名变量之间的关系同名变量之间的关系(例例3.1)– 注意各变量的生命期、可见性、作用域注意各变量的生命期、可见性、作用域– 访问被局部变量屏蔽的全局变量时需使用(访问被局部变量屏蔽的全局变量时需使用(::)) 称为作用域区分符称为作用域区分符– 可见可见C++通过变量的存储类型可以通过变量的存储类型可以较好地较好地解决变量名解决变量名 的冲突。

      的冲突• 彻底解决变量名的冲突问题见第彻底解决变量名的冲突问题见第7章名字空间章名字空间37/50 例如:例如:#includeusing namespace std;int i; //文件作用域文件作用域int main(){ i=5; { int i; //块块作用域作用域 i=7; cout<<“i=”<using namespace std;void fun();int main(){ fun(); fun(); return 0;}void fun(){ static int a=1; int i=5; a++; i++; cout<<"i="<

      值 double x = 5.6; cout << int(x) << ’ ’ << x << endl; 输出输出 5 5.6 (既不修改既不修改x的值,也不改变的值,也不改变x的数据类型的数据类型) 40/50 3. 变量的值变量的值• 初值初值–变量定义时可以对其进行初始化,使其在创建时便具有对变量定义时可以对其进行初始化,使其在创建时便具有对问题求解有意义的初始值问题求解有意义的初始值• 当前值当前值–在变量的生命期内,变量值的变化代表着问题求解的历程在变量的生命期内,变量值的变化代表着问题求解的历程• 变量的控制变量的控制–编写程序编写程序•将本质上相互独立的变量有机地组织起来,协同完成计算任务将本质上相互独立的变量有机地组织起来,协同完成计算任务–阅读程序阅读程序•跟踪多个逻辑上相关的变量值的协同变化规律跟踪多个逻辑上相关的变量值的协同变化规律41/50 4. 变量的地址变量的地址• 变量在其存储区域中的具体地址由系统安排变量在其存储区域中的具体地址由系统安排–变量从其生命期开始至其生命期结束,其地址值(居变量从其生命期开始至其生命期结束,其地址值(居住地)不变;住地)不变;–自动变量在重新创建时,其地址值不一定与以前的相自动变量在重新创建时,其地址值不一定与以前的相同;同;• C++语言提供了(见第语言提供了(见第5章)章)–获取变量地址操作。

      获取变量地址操作运算符为运算符为“&”–根据地址值,访问地址处的内容根据地址值,访问地址处的内容 运算符为运算符为“*”–地址运算(地址加减整数,两个地址值相减)地址运算(地址加减整数,两个地址值相减)42/50 5. 变量名变量名• 实际问题与计算机内存单元之间的桥梁实际问题与计算机内存单元之间的桥梁–表达实际事物的数量表达实际事物的数量–代表计算机内存单元代表计算机内存单元• 变量名是上述两方面的抽象记号切记变量名是上述两方面的抽象记号切记–计算机内存单元是实体计算机内存单元是实体• 变量名变量名–原原 名名 —— 定义变量时使用的标识符定义变量时使用的标识符–别别 名名 —— 为已经存在的变量声明的引用为已经存在的变量声明的引用–间接名间接名 —— 根据地址值找到的变量根据地址值找到的变量43/50 3.1 数据的表示数据的表示• 3.1.1 常量常量• 3.1.2 变量变量• 3.1.3 变量的引用变量的引用• 3.1.4 常量的引用常量的引用44/50 3.1.3 变量的引用变量的引用• 变量的引用是变量的引用是C++语言的一个重要特色语言的一个重要特色 ((C语言中没有变量引用的概念)语言中没有变量引用的概念)• 变量的引用是变量实体(一个已经存在的变量)变量的引用是变量实体(一个已经存在的变量) 的一个别名。

      的一个别名数据类型数据类型 & 引用名引用名 = 已存在的变量名;已存在的变量名;–变量的引用只是声明,不是定义,不会另外分配内存空间变量的引用只是声明,不是定义,不会另外分配内存空间(常称:引用不占空间);(常称:引用不占空间);–声明引用时,必须用一个变量实体对其进行初始化;声明引用时,必须用一个变量实体对其进行初始化;–这样的这样的“绑定绑定”从引用声明开始,直到引用的生命期结束从引用声明开始,直到引用的生命期结束不能更改;不能更改;–对引用的操作就是对其对引用的操作就是对其“绑定绑定”的变量的操作(读的变量的操作(读/写);写);–程序中应保证变量实体的生命期包含其引用的生命期程序中应保证变量实体的生命期包含其引用的生命期45/50 int x; int &rx = x; x = 100; cout << rx << endl;// 输出输出 100 rx = 200; cout << x << endl;// 输出输出 200 例如:例如:46/50 3.1.4 常量的引用常量的引用• 可以对字面常量、符号常量、甚至变量取别名可以对字面常量、符号常量、甚至变量取别名const 数据类型数据类型 & 引用名引用名 = 常量;常量;const 数据类型数据类型 & 引用名引用名 = 已存在的变量名;已存在的变量名;可以将变量视为常量,但不能将常量作为变量。

      可以将变量视为常量,但不能将常量作为变量• 编写或阅读程序时,要正确地辨明引用(别名)编写或阅读程序时,要正确地辨明引用(别名) 所指代的真正变量或常量实体所指代的真正变量或常量实体47/50 double x = 2.5; const double PI = 3.1415926; const double &rPI=1/PI, &E=2.718281828; const double &rx = x; // 允许将常量视为变量允许将常量视为变量 cout << rx << endl; x++;// 正确,正确,x仍为变量仍为变量 rx++; // 错误,因为错误,因为rx为常量为常量 cout << x << endl; double &r = PI;// 错误,不能将常量作为变量错误,不能将常量作为变量 例如:例如:48/50 本讲小结本讲小结•调试程序是程序员的基本工作内容调试程序是程序员的基本工作内容•调试程序磨砺程序员的意志,锻炼程序员的思维调试程序磨砺程序员的意志,锻炼程序员的思维•小结小结–三种结构的多角度应用及相互转换三种结构的多角度应用及相互转换–常量、变量、引用的理解常量、变量、引用的理解–变量的存储类型的掌握变量的存储类型的掌握49/50 作业及实验作业及实验•第三章作业:第三章作业:HZAU-专业专业C++作业作业3•第二次实验:第二次实验:HZAU-专业专业C++实验实验2(计算机计算机1-2班班)•抓紧时间!抓紧时间!50/50 。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.