C++知识点总结

合集下载

高一c语言知识点

高一c语言知识点

高一c语言知识点一、整数和浮点数类型在C语言中,整数类型包括int、short、long和long long,分别表示不同的整数范围。

浮点数类型包括float和double,用于表示有小数部分的数字。

二、变量和常量变量是指在程序中用于存储数据的一块内存空间,可以通过给变量赋值来改变其内容。

常量是指不可改变的值,可以直接在代码中使用。

三、基本操作符C语言提供了许多基本操作符,包括算术操作符(+、-、*、/、%)、关系操作符(==、!=、>、<、>=、<=)、逻辑操作符(&&、||、!)等。

四、条件语句条件语句(if语句)用于根据不同的条件执行不同的代码块。

C语言中的条件语句由if、else if和else关键字组成。

五、循环语句循环语句用于重复执行一段代码,C语言提供了三种循环语句:for循环、while循环和do-while循环。

六、数组数组是一种存储多个相同类型数据的数据结构,可以通过索引访问数组中的元素。

C语言中的数组使用方括号表示,如int numbers[10]。

七、字符串字符串是由一串字符组成的数据类型,C语言中的字符串使用字符数组表示。

可以使用strcpy、strlen等函数处理字符串。

八、函数函数是一段具有独立功能的代码块,可以通过函数名和参数将其从主程序中调用。

C语言中的每个程序都必须包含一个主函数main()。

九、指针指针是一种用于存储内存地址的变量,可以通过指针来访问和修改对应地址的数据。

C语言中的指针可以通过&操作符获取变量的地址,通过*操作符来访问指针指向的数据。

十、结构体结构体是一种自定义的复合数据类型,可以将多个不同类型的数据组合在一起。

结构体的定义使用关键字struct。

十一、文件操作C语言提供了文件操作相关的函数,可以用于读取、写入和操作文件。

常用的文件操作函数有fopen、fclose、fscanf和fprintf等。

c语言的知识点,难点

c语言的知识点,难点

C语言的知识点和难点总结C语言是一种基础编程语言,广泛应用于系统软件、嵌入式系统、游戏开发等领域。

在学习C语言的过程中,我们会遇到一些知识点和难点。

下面,我们将对C语言的知识点和难点进行总结。

一、知识点:1.数据类型:C语言支持多种数据类型,包括整型、浮点型、字符型等。

这些数据类型的使用是C语言编程的基础,需要熟练掌握。

2.运算符:C语言提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等。

理解并正确使用这些运算符是编写高效代码的关键。

3.控制结构:C语言中的控制结构包括条件语句(如if-else)、循环语句(如for、while)等。

掌握这些控制结构是实现程序逻辑的关键。

4.函数:函数是C语言的基本模块,用于实现特定的功能。

了解如何定义函数、调用函数以及传递参数是十分重要的。

5.指针:指针是C语言的特色之一,它允许我们直接访问内存地址。

理解指针的概念和用法对于深入学习C语言至关重要。

6.结构体与联合:结构体和联合是C语言中处理复杂数据结构的重要工具。

通过它们,我们可以组合不同类型的数据并进行操作。

二、难点:1.指针操作:由于指针直接涉及内存地址,因此对初学者来说可能较难理解。

掌握指针的基本概念、声明、初始化和使用是C语言学习的难点之一。

2.内存管理:在C语言中,程序员需要直接管理内存。

如何正确地分配和释放内存是避免内存泄漏和段错误的关键,也是学习C语言的难点。

3.深度递归:深度递归可能导致栈溢出或性能问题,因此在实际应用中需要谨慎处理。

理解递归原理并在合适的场景下应用是C语言学习的一个难点。

4.多线程编程:多线程编程涉及线程的创建、同步和通信等复杂概念,对于初学者来说可能较难掌握。

理解多线程的原理和应用是多线程编程的难点之一。

C语言知识点总结

C语言知识点总结

C知识点(徐向前整理)数据类型:整型:基本整型—int--%d长整型---long--%ld短整型—short--%d实型:单精度—float--%f双精度—double--%lf长双精度--long double字符型:--char--%c[‘A’表示字符A]【char cha; cha=’A’(只能这样)】变量定义:单个变量:int a;(关键词加变量名,以分号结尾)多个变量:int a,b,c;(关键词加变量名1,变量名2,…)运算符:算术运算符+ - * /(除) %(取余)关系运算符> >= < <= !=(不等于) ==(等于)逻辑运算符!(非) &&(且) ||(或)赋值运算符= += *= /= -=Eg: s+=i等于s=s+I S*=i等于s=s*i优先级别算数>关系>逻辑>赋值特别注意:(1)除法运算:除法的运算结果和运算对象的数据类型有关【整数整数=整数、浮点数整数=整数浮点数=浮点数】(2)取余运算:商与被除数符号相同(同正或者同负)(3)C语言对在真假的处理:非0是真,0是假;真用1,假用0;&&左边表达式为假,则右边不执行;||左边表达式为真,则右边不执行,左边为假,则执行右边;数据的输入与输出:printf作用:将变量的内容输入到显示器上。

用法:1.printf (“字符串\n”);2. printf (“输出控制符\n”,输出参数);eg: printf (“%d\n”,a);3. printf (“输出控制符1\n输出控制符2\n…输出控制符m\n”,输出参数1, 输出参数2,…输出参数m,);【输出控制符与输出参数一一对应】eg: printf (“%d\n%d\n%d\n”,a,b,c);4. printf (“输出控制符非输出控制符”,输出参数);Scanf作用:通过键盘将数据输入到变量中用法:1.scanf(“输入控制符”,输入参数);功能:将从键盘中输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。

C语言知识点

C语言知识点

C语言知识点总结1、模块的独立程度可以由两个定性标准量度:耦合性和内聚性。

(一般来说要求模块之间的耦合度尽可能低而内聚性尽可能高)2、算法具有五个特点:有穷性,确定性,可行性,有0个或者多个输入,有一个或者多个输出。

3、C语言规定标识符只能由字母、数字、下划线3种字符组成,而且第一个字符必须为字母或者下划线。

(C语言还规定标识符不能为C语言中的关键字。

)4、按照耦合度从强到弱本别是:内容耦合、公共耦合、外部耦合、标记耦合、数据耦合、非直接耦合。

5、算法的复杂度主要包括算法的时间复杂度和空间复杂度。

所谓算法时间复杂度指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数;算法空间复杂度指执行这个算法所需的内存空间。

6、赋值运算符的左侧的操作数必须是一个变量,而不能是表达式或者常量。

7、C语言中只有自动变量和寄存器变量在使用时才占用内存单元。

8、在树形结构中,每一个结点只有一个前件,称为父结点;没有前件的结点只有一个称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点;没有后件的结点又称为叶子结点。

9、对象的基本特点:标志唯一性,分类性,封装性,多态性,模块性。

10、数据结构概念一般包括数据的逻辑结构、存储结构、及数据上的运算集合。

11、在C语言中,用单引号把一个字符或者反斜线后跟一个特定的字符括起来表示一个字符常量。

12、在C语言中操作一个字符串常量的方法有:将字符串常量放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串储存区。

13、软件生命周期分为:软件定义、软件开发、软件运行维护3个阶段。

14、软件设计包括软件结构设计、数据设计、接口设计和过程设计。

(结构设计是定义软件系统各主要部件之间的关系;数据具设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作形同之间及软件和人之间如何通信;过程设计则是把系统结构部件转换成软件的过程描述。

大一高等数学c知识点总结

大一高等数学c知识点总结

大一高等数学c知识点总结高等数学是大一学生必修的一门课程,C部分主要包括微分学和积分学的内容。

以下将对大一高等数学C部分的知识点进行总结。

一、微分学1. 导数及其应用导数是函数在某一点的变化率,通常表示为f'(x),计算导数的方法有基本导数公式、导数的四则运算法则以及高阶导数等。

在实际应用中,导数可以用于求函数的极值、切线方程和函数图像的形状等问题。

2. 求导法则常见的求导法则包括常数法则、幂函数法则、指数函数和对数函数的导数、三角函数的导数以及反函数的导数等。

掌握这些法则可以简化求导的过程。

3. 高阶导数和隐函数微分高阶导数指函数的导数的导数,可以通过多次求导得到。

隐函数微分是指对含有隐含关系的方程进行求导,常用隐函数微分法来解决问题。

4. 微分中值定理和应用微分中值定理包括鲁尔中值定理、拉格朗日中值定理和柯西中值定理等,它们可以用于证明存在性、判定极值以及估计导数的大小等问题。

二、积分学1. 不定积分不定积分是求解函数原函数的过程,也就是求导的逆过程。

常用的基本积分公式包括幂函数的不定积分、三角函数的不定积分以及常见函数的不定积分等。

2. 积分法积分法包括换元积分法、分部积分法和有理分式积分法等。

通过巧妙选择适当的换元、分部或拆分有理分式,可以简化复杂函数的积分过程。

3. 定积分定积分是计算曲线下面的面积或求解定积分方程的过程。

常用的基本定积分包括幂函数的定积分、三角函数的定积分以及基本初等函数的定积分等。

4. 积分应用积分应用包括曲线长度、曲线面积、旋转体体积和质量、物理应用等。

通过积分的应用,可以解决实际问题,并掌握积分在几何、物理等领域中的应用。

综上所述,大一高等数学C部分的主要内容包括微分学和积分学。

在学习过程中,需掌握导数的计算和应用、求导法则、高阶导数和隐函数微分、微分中值定理等微分学知识点;同时,需熟悉不定积分、积分法、定积分以及积分应用等积分学知识点。

通过深入理解这些知识点并解决实际问题,可以提高数学能力和应用能力,为后续学习打下坚实的基础。

C语言各章节知识点总结

C语言各章节知识点总结

C语⾔各章节知识点总结第⼀部分“C语⾔基础知识”知识点1、C程序的基本结构C程序是由函数构成的。

每个程序由⼀个或多个函数组成,其中必须有且仅有⼀个主函数main( )。

main函数是⼀个可执⾏C语⾔程序的⼊⼝和正常出⼝,⽽不论其在整个程序中书写的位置如何。

在C语⾔中,⼤⼩写字母是有区别的。

(例如习惯使⽤⼩写字母定义变量,⽤⼤写字母定义常量)。

C程序的注释有两种⽅法,⼀种是⾏注释,使⽤“//”;另外⼀种是块注释,使⽤“/* */”,注意“/*”与“*/”不能嵌套使⽤。

C语⾔书写较为灵活,但是提倡采⽤缩进格式进⾏程序书写,以体现语句之间的层次感。

C程序每条语句以“分号”作为结束标志。

以下⼏种情况不得使⽤分号:(1)所定义的函数名称后不得使⽤分号;(2) if…else…语句是⼀个整体,中间不能使⽤分号将其分隔开;(3)预编译命令后不能使⽤分号。

2、C程序开发步骤C语⾔在计算机上的开发过程主要由以下四个步骤组成:第⼀步:编辑。

⽣成后缀名为“.c”的源⽂件第⼆步:编译。

⽣成后缀名为“.obj”的⽬标⽂件第三步:连接。

⽣成后缀名为“.exe”的可执⾏⽂件第四步:运⾏。

3、VC++6.0开发⼯具的使⽤按下功能键Ctrl+F7编译程序;按下功能键F7连接程序;按下功能键Ctrl+F5运⾏程序;若程序在编译和连接过程中有语法错误,则按下功能键F4定位错误所在⾏并根据错误提⽰信息改正错误(原则是先解决error,再解决warning)。

4、C语⾔中标识符的命名规则标识符由字母、数字、下划线组成;规定第⼀个字符必须为字母或下划线。

标识符定义的变量名、函数名、常量名等最好做到“见名知义”;⼤⼩写代表不同含义;不能使⽤关键字;最好不要与C语⾔的库函数同名。

5、C语⾔的数据类型C语⾔的数据类型由基本类型和复杂类型构成。

其中基本数据类型包括字符型(char)、整型(int,short,long)、实型(float,double);复杂数据类型包括指针类型、数组、结构体、联合体。

C语言最重要的常考知识点总结

C语言最重要的常考知识点总结
考试注意点:括号在这里的重要性。
第五章
函数:是具有一定功能的一个程序块;
1)函数的参数,返回数值(示意图):
main()
{
int a = 5,b=6,c;
c = add(a,b);
printf(“%d”,c);
}
调用函数
a,b是实参
整个函数得到一个数值就是
add函数的返回数值。
int add ( int x, int y)
5)一定要记住二进制如何化成十进制。
概念常考到的:
1、编译预处理不是C语言的一部分,不占运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
10)018的数值是非法的,八进制是没有8的,逢8进1。
11)%符号两边要求是整数。不是整数就错了。
12)三种取整丢小数的情况:
1、int a =1.6;
2、(int)a;
第二章
1)printf函数的格式考查:
%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。
%ld对应long int;%lf对应double。
6、逗号运算符的级别最低。
第一章
1)合法的用户标识符考查:
合法的要求是由字母,数字,下划线组成。有其它元素就错了。
并且第一个必须为字母或是下划线。第一个为数字就错了。
关键字不可以作为用户标识符号。main define scanf printf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。

c语言重点知识点总结

c语言重点知识点总结

c语言重点知识点总结c语言重点知识点总结上学的时候,说起知识点,应该没有人不熟悉吧?知识点是指某个模块知识的重点、核心内容、关键部分。

还在苦恼没有知识点总结吗?下面是小编帮大家整理的c语言重点知识点总结,欢迎大家分享。

c语言重点知识点总结篇1◆知识点1:交换两个变量值的方法1)采用第三方变量(最容易想到的方法)2)采用加减法进行值得交换(面试时常用**)代码如下:b = a - b;a = a - b;b = a + b;3)采用按位异或的位方式代码如下:a = a^b;b = a^b;a = a^b;◆知识点2:取语言重点知识点总结余运算%的结果与被除的符号相同,结果为两个正数取余后前面加符号◆知识点3:sizeof的使用sizeof是一种运算符不要想当然理解为函数sizeof使用时可以不加()sizeof可以加变量、常量、数据类型跟数据类型是必须加()◆知识点4:static和 extern区别是能否进行跨文件访问①函数②变量1、对函数的作用:外部函数:定义的函数能被本文件和其他文件访问内部函数:定义的函数只能被本文件访问默认情况下,所有函数都是外部函数(相当于带关键字extern),所以可以省略extern作用:完整的定义和引用一个外部函数都加extern引用时也是默认是外部函数所以也省略externstatic作用:定义一个内部函数使用:static返回类型函数名(参数列表)不能被其他文件调用一个项目中,本文件的外部函数名不能和其他文件的外部函数同名(error)本文件中的内部函数(static)可以和其他文件的函数名同名的2、对变量的作用:全局变量分为两种:外部变量:定义的变量可以被其他文件访问①默认情况下所有的全局变量都是外部变量②不同文件中的同名外部变量都代表同一个③定义一个外部变量不加extern,声明才加extern同样的声明是没有错误的内部变量:定义的变量不能被其他文件访问不同文件的同名内部变量互不影响◆知识点5:数组的几种初始化方式如下:int a[3] = {10, 9, 6};int a[3] = {10,9};int a[] = {11, 7, 6};int a[4] = {[1]=11,[0] = 7};(知道有此种初始化方式即可)◆知识点6:数组的内存分析和注意点存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)【注:对于以后学习重要】数组名的作用,查看元素地址注意数组不要越界◆知识点7:字符串知识点"123”其实是由’1’、’2’、’3’、’’组成字符串的输出”%s”,’’是不会输出的◆知识点8 :字符串处理函数:strlen()计算的是字符数,不是字数计算的字符不包括’’,一个汉字相当于3个字符例子:"哈haha" 字符数为7从某个地址开始的数字符个数,知道遇到’’为止指针部分在C语言中占据重要地位,所以重点学习与整理了指针的知识:◆知识点9:指针定义的格式变量类型 *变量名如:Int *p◆知识点10:指针作用能够根据一个地址值,访问对应的.存储空间例:Int *p;Int a = 90;P = &a;*p = 10;//把10赋值给p所指的存储空间◆知识点11:指针使用注意Int *p只能指向int类型的数据指针变量只能存储地址指针变量未经初始化不要拿来间接访问其他存储空间◆知识点12:指针与数组遍历数组int ages[5] = {10, 4, 9, 44, 99};for(int i = 0; i<5; i++){printf("%d ", ages[i]);}使用指针遍历数组:int *p;// 指针变量P指向了数组的首地址p = &ages[0];// 使用指针遍历数组for(int i = 0; i<5; I++){printf("ages[%d] = %d ", i, *(p + i));}注:指针+ 1取决于指针的类型注:数组的访问方式数组名[下标]指针变量名[下标]*(p + i)◆知识点12:指针与字符串定义字符串的两种方式:1、利用数组Char name[] = “Andyzhao”特点:字符串里的字符可以修改适用场合:字符串内容需要经常修改2、利用指针Char *name = “itcast”特点:字符串是一个常量,字符串里面的字符不能修改使用场合:字符串的内容不需要修改,而这个字符串经常使用◆知识点13:预处理指令(三种):宏定义条件编译文件包含1、宏定义的配对使用和带参数的宏:#define#undef带参数的宏:#define sum(v1,v2) ((v1) + (v2))//括号是必须的例如:#define pingfang(a) a*a#define pingfang(a) (a*a)调用时pingfang(10)/pingfang(2)//不正确pingfang(5+5)//不正确带参数的宏效率比函数高2、条件编译(一般是判断宏的值)#if 条件#elif 条件#else#endif(非常重要)不然后面的代码全部无效3、文件包含:<>表示系统自带的文件,""表示自定义文件不允许循环包含,比如ah包含bh,bh又包含ah◆知识点14:typedef 只是给类型起了个别名并不是定义新类型struct Student{int age;char *name;};typedef struct Student Student;等价于typedef struct Student{int age;char *name;}Student;也等价于typedef struct {int age;char *name;}Student;类似的给枚举类型起名typedef enum Sex{Man,Women}Sex;下面这种情况的写法比较特殊//下面是函数指针类型的自定义数据类型,返回值类型和参数类型要匹配#includetypedef int (*TypeFuncPointer)(int, int);int add(int a, intb){return a + b;}int minus(int a, intb){return a - b;}int main(){TypeFuncPointer p = add;//使用自定义类型TypeFuncPointer p2 = minus;//使用自定义类型printf("add = %d ",p(1, 2));printf("minus = %d ",p2(1, 2)); return 0;}下面是定义结构体的指针类型typedef struct Student{int age;char *name;}*PtrStu;//使用方式Student stu ={18, "zhangsan"}; PtrStu p = &stu;宏定义也是可以为类型起名的#define Integer int相当于typedef int Integer注意和typedef的区别例如:typedef char * String#define String2char *。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++的特点:1.支持抽象数据类型2.多态性,一个接口,多重算法,支持早期联编和滞后联编3.继承性,保证了代码复用,支持分类的概念一个c++程序由一个或多个函数构成,并且在这些函数中只有一个主函数main,它是程序执行的入口。

C++程序严格区别字母的大小写。

C++程序中的字符:(字符单位:0x00-0x7f范围内定义的ASC||码所表示的西文字符,每个ASC||码字符占用1个字节)1.标识符:标准c++标识符由字母、下划线和数字组成,且第一个字符不能为数字,长度一般不超过32个,文件只识别前8个字符。

标识符大小写敏感。

自定义标识符不提倡以下划线开始。

2.关键字:又称保留字,具有特定含义。

C++的基本数据类型:C++的数据类型分为两大类:基本数据类型和导出数据类型。

基本数据类型:字符型(char)、整型(int)、单精度实型(float)、双精度实型(double)、布尔型(bool)和空类型(void)。

Float可以保存7位有效数字,double可以保存15位有效数字。

导出数据类型:数组、指针、引用、结构体、共用体、枚举和类。

逻辑型也称布尔型,用来处理逻辑量。

取值只有true(真)和false(假)两个,占1个字节,将非0值解释为真,将0值解释为假。

变量与常量:(C++中有字符串常量,没有字符串变量。

)变量三要素:变量名、变量的内存空间和变量的值。

定义格式:数据类型变量名变量必须先定义后使用,变量确定类型后,编译器可以对变量参与的运算做合法性检查。

变量赋值:1:变量定义后,用赋值语句赋初值。

2:在定义变量时直接对变量赋初值,称为变量的初始化。

注意:不能对文字常量赋值,不能对表达式赋值,常量不能重新赋值。

文字常量:整型、实型、字符型、字符串型。

(存储在代码区,不是通过地址进行访问。

)实型常量在内存中以浮点形式存在。

符号常量:(const)符号常量在使用前一定要首先声明。

形式为:const 数据类型说明符常量名=常量值;符号常量在声明时一定要赋初值,而在程序中间不能改变其值。

运算符和表达式:算数运算符:对于除运算符,当两个运算量均为整数时为整除,商取整数,当至少有一个运算量为实数时,则为普通除。

对于求余运算,要求运算量必须为整型数据。

注意:计算时注意溢出问题!!!自增、自减运算符:i++表示先用i的值参加运算,然后再将变量i的值加1.++i表示先将变量i的值加1,然后再参加其他运算。

自增、自减运算符只能作用于变量,不能用于其他。

关系运算符(<、<=、>、>=、==、!=):关系运算符的优先级比算数运算符的优先级低,但比赋值运算符的优先级高。

参加关系运算的两个操作数可以是任意类型的数据。

当比较结果成立时,结果为true;当比较结果不成立时,结果为false.逻辑运算符(!、&&、||):非运算符(!)的优先级比算数、关系运算符的优先级高。

与运算符(&&)和或运算符(||)的优先级比算数关系运算符的优先级低,但比赋值运算符级高。

&&和||运算符具有短路的特性:对于&&,运行时先对第一个操作数求值,如果其值为false,则不再对第二个操作数求值;对于||,运行时先对第一个操作数求值,如果其值为true,则不再对第二个操作数求值。

注意:1.在判断运算量的真假时,c++规定任何非0值表示true,0值表示false.2.C++在计算逻辑表达式时,从左向右扫描表达式,一旦能确定表达式的值,就不继续进行计算。

位运算符:对整型数据的运算(二进制),符号位也参与运算。

1.按位与(&):对应位都是1,则结果为1,否则为0.2.按位或(|):一个数的对应位为1,则结果为1;若两个数的对应位都是0,结果是0.3.按位异或(^):对应位不同结果为1,否则为0.4.按位取反(~):0变1,1变0.函数:声明函数时,形参表只要包含完整的类型信息即可,形参名可以省略。

函数参数的传递方式:C++支持两种参数传递方式:值传递和引用传递。

值传递是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。

这一过程是值的单向传递过程,一旦形参获得了值便与实参脱离关系,此后无论形参怎么改变,都不会影响实参。

引用传递是一种特殊类型的变量,可以被认为是另一个变量的别名,通过引用名与通过被引用的变量名访问变量的效果是一样的。

注意:声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象,一旦一个引用被初始化后,就不能改为指向其他对象。

引用可以作为形参,成为引用传递。

内联函数在编译时将函数体潜入在每个调用处。

内联函数应该是比较简单的函数,结构简单,语句少。

形式:inline 类型说明符函数名(含类型说明的形参表){语句序列}默认参数:C++允许定义具有默认实参的函数。

这样在函数调用时,实参与形参的个数不同,默认参数也称为缺省参数。

如果在函数调用中省略了函数实参,将把函数的缺省值赋给函数形参。

缺省值的设定通常是在函数原型中给出。

如果在程序中没有给出函数原型,那么缺省值可以在定义函数时给出。

函数的缺省值应该在函数名出现最早的地方给出。

注意:在函数调用中,第一个参数用缺省值,而第二个参数用指定值是错误的,如果一个参数具有缺省值,那么它右边的参数都要有缺省值。

形参不一定都要有缺省值。

参数的缺省值必须是常量,不能是变量。

函数的返回值:注意:1.)一个函数可以有多个参数,但一个函数最多只能返回一个值,如果要从一个函数返回多个值,必须通过“打包”的方式,将这些值当作一个整体来处理。

2.)如果一个函数的返回值不是void,那么该函数必须包含return语句。

函数递归调用:对同一个函数的多次不同调用中,编译器会为函数的形参和局部变量分配不同的空间,他们互不影响。

函数重载:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定用哪个函数,这就是函数重载。

重载函数的形参必须不同:个数不同或类型不同。

编译器不以形参名和返回值来区分函数。

不要将不同功能的函数定义为重载函数。

局部变量和全局变量:内存存储区的分布:1.)代码区:存放程序的可执行代码。

2.)全局数据区:存储静态变量和一般的全局变量,自动初始化为0。

3.)栈区(一种先进后出的结构):存放局部变量,包括函数的形参、函数内定义的一般变量。

分配栈区时,不处理原内存中的值。

如果对变量不初始化,那么变量的初值不确定。

4.)自由存储的堆区:存放与指针有关的动态数据,分配存储区时,也不清零。

局部变量:局部变量包括函数的形参、函数内定义的变量、复合语句内定义的变量。

由于局部变量具有一定的范围性,所以不同的函数可以定义同名的变量,但这些变量之间不会相互影响。

全局变量:全局变量存放在全局数据区,如果定义时没有给出初值,则自动初始化为0.全局变量可定义在函数外的任何一个位置,其有效范围是从变量定义处开始到文件结束,都可以访问。

如果程序的某个函数修改了全局变量,则其他函数都可见修改后的结果。

如果一个函数内的局部变量和全局变量同名,那么对于函数来说只有局部变量是可见的,这称为全局变量的隐藏。

要引用同名的被隐藏的全局变量,必须加上“::”局部变量与栈:当函数调用时,系统借助栈实现函数调用和局部变量的空间分配。

变量的存储类别:auto(自动存储变量);register(寄存器变量)采用register修饰的变量将尽可能的存储在寄存器中,以提高程序的运行速度;register只能修饰局部的int型或char型变量,而不能修饰其他类型的变量;static(静态变量)初始化仅进行一次;extern扩展全局变量的作用域。

将全局变量的作用域扩展到定义之前:在引用之前用关键字extern对该变量进行引用性说明。

此声明不同于全局变量的定义,采用extern声明变量,应确保变量已经在其他地方定义过。

用extern声明变量时,类型名可以省略。

将全局变量的作用域扩展到其他文件:静态全局变量不能采用extern进行作用域扩展。

类:定义类的语法形式:例子:Class 类名称 class clock{ {Public: public:外部接口 void settime(int newH,int newM,int newS);Protected: private:保护型成员 int hour,minute,second;Private: public:私有成员 void showtime();};//注意分号。

};注意:在类中可以只声明函数的原型,函数的实现(即函数体)可以在类外定义类的成员包括数据成员和函数成员。

对类成员访问权限的控制属性有:公有属性(public),私有属性(private),保护属性(protected)。

公有类型成员定义了类的外部接口,在类外只能访问类的公有成员;私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的,如果私有成员紧接着类名称,则关键字private可以省略。

一般情况下,一个类的数据成员都应该声明为私有成员。

在类的定义中,具有不同访问属性的成员,可以按任意顺序出现。

修饰访问属性的关键字也可以多次出现,但是一个成员只能有一种访问属性。

在书写时通常习惯将公有类型放在最前面。

声明对象:类名对象名;注意:对象所占据的内存空间只是用于存放数据成员,函数成员不在每一个对象中存储副本,每个函数的代码在内存只能够只占据一份空间访问数据成员:对象名.数据成员名调用函数成员:对象名.函数成员名(参数表)函数的原型声明要写在类体中,具体函数的实现是写在类定义之外的,函数实现具体形式:返回值类型类名::函数成员名(参数表){函数体}成员函数调用中的目的对象:调用一个成员函数需要使用“.”操作符之处调用所针对的对象(myclock.showtime():myclock就是这一调用过程中的目的对象。

)。

在成员函数中可以不使用“.”而直接引用目的对象中的数据成员。

在成员函数中引用其他对象的属性和调用其他对象的方法时,都需要使用“.”注意:在类成员函数中,既可以访问目的对象的私有成员,又可以访问当前类的其他对象的私有成员。

带默认形参值的成员函数:类成员函数的默认值一定要写在类定义中,而不能写在类定义之外的函数实现中。

内联成员函数的声明:隐式声明和显式声明隐式声明:将函数体直接放在类体内。

显式声明:用inline修饰,在函数实现时。

构造函数和析构函数:构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定状态,构造函数也是类的一个成员函数,构造函数的函名与类名相同,而且没有返回值。

相关文档
最新文档