- 2
- 0
- 约1.02万字
- 约 52页
- 2017-06-03 发布于湖北
- 举报
如何:改掉警告错误? 补充:数组的引用(P25) 2.11 const修饰符 #define PI 3.1415926 const float PI=3.1415926; 这个常量是有类型的,它有地址,可以用指针指向这个值,但不能修改它。C++建议用const取代#define定义常量。 注意: (1) 使用const修饰符定义常量时,必须初始化; (2) 常量一旦被定义,在程序中任何地方都不能 再更改。 (3) 如果用const定义的是一个整型常量,int可以省略。 (4) 与#define定义的常量有所不同,const定义的常量可以有自己的数据类型,这样C++编译程序可以进行更加严格的类型检查,具有良好的编译时的检测性。 (5) 函数参数也可以用const说明,用于保证实参在该函数内部不被改动,大多数C++编译器能对具有const参数的函数进行更好的代码优化。例如,通过函数max求出整型数组a[100]中的最大值,函数原型应该是: int max(const int*pa); 这样做的目的是确保原数组的数据不被破坏,即在函数中对数组元素的操作只许读,不许写。 const与指针一起使用的组合情况: (1) 指向常量的指针 指向常量的指针是指一个指向常量的指针变量。const char *pc=abcd; 声明指向常量的指针变量pc,它指向一个字符串常量,由于使用了const,不允许改变指针所指的常量,因此以下语句是错误的: pc[3]=x; × 但是由于pc是一个指向常量的普通指针变量,不是常指针,因此可以改变pc的值。例如以下语句是允许的:pc=jkkk;√ const与指针一起使用的组合情况: (2) 常指针 常指针是指指针本身,而不是它指向的对象声明为常量。例如: char* const pc=“abcd”; // 常指针 pc[3]=x; √ // 合法 pc=dfasdfa; × // 不合法 const与指针一起使用的组合情况: (3) 指向常量的常指针 整个指针本身不能改变,它所指向的值也不能改变。要声明一个指向常量的常指针,二者都要声明为const。例如: const char* const pc=“abcd”; // 指向常量的常指针 pc[3]=x; × // 错误,不能改变指针所指的值 pc=dfasdfa; × // 错误,不能改变指针本身 2.12 字符串 在C++中提供了一种既方便又好用的string类型。下面通过一个简单的例子说明string类型的使用。 【例2.10】字符串类string的使用。 2.13 C++语言中函数的新特性 2.13.1 函数原型(Function Prototype) 2.13.2 内联(inline)函数 2.13.3 带缺省参数的函数 2.13.4 函数重载(overload) 2.13.5 函数模板(function template) C++要求为每一个函数建立原型,用以说明函数的名称、参数个数及类型和函数返回值的类型。 其主要目的是让C++编译程序进行类型检查,即形参与实参的类型匹配检查,以及返回值是否与原型相符,以维护程序的正确性。所以应养成将声明与定义分别编写的编程习惯。 函数原型与函数的定义要在函数的返回类型,函数名和参数的类型及数量这三条线上保持一致。 当然,在写函数原型时,可以省略形参的名字,因为参数名对编译器没有意义,但如果取名恰当的话,这些名字可以起到提示参数用途的作用。 2.13.1 函数原型(Function Prototype) 2.13.2 内联(inline)函数 使用内联函数是一种用空间换时间的措施,若内联函数较长,且调用太频繁时,程序将加长很多。因此,通常只有较短的函数才定义为内联函数,对于较长的函数最好作为一般函数处理。 2.13.2 内联(inline)函数 一般情况下,我们对内联函数做如下的限制: (1) 不能有递归 (2) 不能包含静态数据 (3) 不能包含循环 (4) 不能包含switch和goto语句 (5) 不能包含数组 若一个内联函数定义不满足以上限制,则编译系统把它当作普通函数对待。 【例2.11】内联函数的使用。 2.13.3 带缺省参数的函数 如果在函数说明或函数定义中为形参指定一个缺省值,则称此函数为带缺省参数的函数。当函数调用发生后,在形参表中等号后的各“缺省值”将起实参的传递作用。 如果函数有多个缺省参数,则缺省参数必须是从右向左定义,并且在一个缺省参数的右边不能有未指定缺省值的参数。 void fun(int a=3,int b=6,int c,int d); × void fun(int a=65,i
您可能关注的文档
最近下载
- 栽培措施对青贮玉米粗蛋白质含量及产量的影响.pdf VIP
- EN IEC 62660-3-2022 Secondary lithium-ion cells for the propulsion of electric road vehicles - Part 3:Safety requirements 电动道路车辆推进用二次锂离子电池. 第3部分: 安全要求.pdf
- 2024年江苏省淮安市中考语文真题试卷含答案.docx
- 安全员(矿山)试题库含参考答案.docx VIP
- 矿山安全员试题库(附参考答案).docx VIP
- Honor荣耀MagicBook Pro 14 用户手册-(FMB-P,01,zh-cn)说明书.pdf
- 选矿厂设计考试试卷及答案.docx VIP
- 社会工作者(初级)考试题库及答案【题库版】.pdf VIP
- 融媒体中心新媒体制作岗位专业测试及答案.docx VIP
- 高考物理一轮复习6.2机械能守恒定律-动能定理及其应用--(原卷版+解析).docx VIP
原创力文档

文档评论(0)