C++第3章 c++基础.ppt
《C++第3章 c++基础.ppt》由会员分享,可在线阅读,更多相关《C++第3章 c++基础.ppt(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 C+C+基础基础 3.1 3.1 数据和表达式数据和表达式 3.2 3.2 流程控制语句流程控制语句 3.3 3.3 函数函数 3.4 3.4 标识符与名称空间标识符与名称空间 3.5 3.5 数组数组 3.6 3.6 指针指针 3.7 3.7 结构与联合结构与联合 3.8 3.8 引用引用 3.1 3.1 数据和表达式数据和表达式3.1.1 3.1.1 关键字与标点符号关键字与标点符号1.1.关键字关键字 关键字又称为保留字,是系统预定义的关键字又称为保留字,是系统预定义的单词。正是这些关键字的存在,才使得程序单词。正是这些关键字的存在,才使得程序简单易写,不像机器指令那样晦
2、涩难懂。关简单易写,不像机器指令那样晦涩难懂。关键字对编译器有着特殊的意义,不允许对其键字对编译器有着特殊的意义,不允许对其进行重新定义,也不允许挪作它用进行重新定义,也不允许挪作它用。C+中常用的关键字中常用的关键字 auto bool break case catch char class const continue default delete do double else enumextern false float for friend goto if inline int long mutable namespace new operatorprivate protected p
3、ublic register return short signed sizeof static struct switch templatethis throw true try typedef typename union unsigned using virtual void wchar_t while2.标点符号标点符号P62,P62,表表3.2 C+3.2 C+中常用的标点符号中常用的标点符号 C+C+中,标点符号具有一定的意义,在程中,标点符号具有一定的意义,在程序中用来分隔不同的语法单位或用来界定序中用来分隔不同的语法单位或用来界定范围等,以便编译和识别,但其本身并不范围等,以便
4、编译和识别,但其本身并不产生某种操作。产生某种操作。3.1.2 基本类型及其派生类型基本类型及其派生类型数据类型基本类型空类型(无值类型)void构造类型类类型class指针类型整型int实型(浮点型)字符型逻辑型bool结构类型struct数组类型枚举型类型enum联合型类型union单精度型float双精度型double单字符型char宽字符型wchar_t图1 C+数据类型下面仅介绍typedef的应用。用用typedeftypedef为已有类型定义别名的一般形式如为已有类型定义别名的一般形式如下:下:typedeftypedef 已有类型已有类型 已有类型的别名已有类型的别名;例如:例
5、如:typedeftypedef intint ARRAY10;ARRAY10;ARRAY a1,a2;typedef经常用来定义函数指针的别名,例经常用来定义函数指针的别名,例如:如:typedef int(*funcptr)(int,int);typedeftypedef char*STRING;char*STRING;typedeftypedef对于结构和类等自定义类型同样适用,对于结构和类等自定义类型同样适用,例如:例如:typedeftypedef structstruct student student char name10;char name10;intint num;num;
6、char sex;char sex;STUDENT,*PSTUDENT;STUDENT,*PSTUDENT;则可以用则可以用STUDENTSTUDENT定义定义studentstudent类型的变量,用类型的变量,用PSTUDENTPSTUDENT定义定义studentstudent类型的指针。类型的指针。习惯上,把这种用习惯上,把这种用typedeftypedef定义的类型名用定义的类型名用大写字母表示,以便与系统提供的类型标识符相大写字母表示,以便与系统提供的类型标识符相区别。区别。3.1.4 变量的声明与定义变量的声明与定义用来存放数据且其值可以改变的量称为变量。一用来存放数据且其值可以
7、改变的量称为变量。一般来说,每个变量都要有类型和名字,变量类型般来说,每个变量都要有类型和名字,变量类型告诉编译器如何为它分配内存,变量名用来访问告诉编译器如何为它分配内存,变量名用来访问变量的值。利用变量的值。利用C+C+中的预定义类型、用户自定中的预定义类型、用户自定义类型以及用义类型以及用typedeftypedef定义的类型,可以定义所定义的类型,可以定义所需要的变量。需要的变量。变量必须遵循先声明后使用的原则,而要使变量必须遵循先声明后使用的原则,而要使用的话,必须最终有定义。这里就涉及到变量的用的话,必须最终有定义。这里就涉及到变量的声明与定义,这是两个不同的问题,也是很容易声明与
8、定义,这是两个不同的问题,也是很容易引起混淆的地方。引起混淆的地方。3.1.5 变量的初始化与存储属性(1)自动变量 对于自动变量来说,每当程序运行到其定义所在的程序块时,都会在动态存储区即栈中为它分配内存。(2)寄存器变量寄存器变量 在定义局部变量时用register修饰,即为寄存器变量。register用来建议编译器,将变量存放在CPU内部的寄存器中,以便提高运行速度。(3)静态变量静态变量在定义局部变量时用在定义局部变量时用staticstatic修饰。对于静态变量来说,其修饰。对于静态变量来说,其内存分配工作是在主函数开始运行之前进行的,存储在内存分配工作是在主函数开始运行之前进行的,
9、存储在静静态存储区态存储区而不是栈中。如果在定义的同时赋了初值,就使而不是栈中。如果在定义的同时赋了初值,就使用该初值,否则初值为用该初值,否则初值为0 0。静态变量在程序运行期间始终。静态变量在程序运行期间始终占用内存,直到程序结束时才自动释放,因此,它能够保占用内存,直到程序结束时才自动释放,因此,它能够保存函数存函数(主函数除外主函数除外)退出时的值,到下一次调用时继续使退出时的值,到下一次调用时继续使用。例如:用。例如:void f()void f()static static intint i=1;/i i=1;/i为静态变量,初值为为静态变量,初值为1 1 coutcouti+i+
10、endlendl;/;/第第1 1次调用时输出次调用时输出1 1,第,第2 2次调用次调用 时输出时输出2 2,(4 4)外部变量)外部变量在函数体内某个变量的声明之前用在函数体内某个变量的声明之前用externextern修饰的时候,意味着该变量是在全局范围修饰的时候,意味着该变量是在全局范围即当前范围之外定义的变量,故称为外部即当前范围之外定义的变量,故称为外部变量。该变量。该全局变量全局变量可能已经定义,也可能可能已经定义,也可能到下面才定义,还可能在其他文件中定义,到下面才定义,还可能在其他文件中定义,但必须有定义。全局变量也存储在但必须有定义。全局变量也存储在静态存静态存储区储区,程
11、序运行期间始终占用内存,但其,程序运行期间始终占用内存,但其作用域要比静态变量大得多。作用域要比静态变量大得多。3.1.6 3.1.6 常量与符号常量及枚举常量与符号常量及枚举 常量是指在程序运行过程中其值不能常量是指在程序运行过程中其值不能改变的量。改变的量。C+C+支持支持5 5种类型的常量:浮点种类型的常量:浮点型、整型、字符型、布尔型和枚举型。常型、整型、字符型、布尔型和枚举型。常量在程序中一般以自身的存在形式体现其量在程序中一般以自身的存在形式体现其值。常量具有类型属性,类型决定了各种值。常量具有类型属性,类型决定了各种常量在内存中占据存储空间的大小。常量在内存中占据存储空间的大小。
12、1 const 常量2.整型常量整型常量整整型型数数据据表表示示通通常常意意义义上上的的整整数数,整整型型常常量量可可以以用用十十进进制制、八进制或十六进制表示。八进制或十六进制表示。1.1.十进制常量十进制常量一一般般占占一一个个机机器器字字长长,是是一一个个带带正正负负号号的的常常数数(默默认认情情况况下为正数),如下为正数),如+3+3,-7-7等。等。2.2.八进制常量八进制常量由由数数字字0 0开开头头,其其后后由由若若干干0707的的数数字字组组成成,如如03780378,01230123等。等。3.3.十六进制常量十六进制常量以以0 x0 x或或0X0X开头,其后由若干开头,其后
13、由若干0909的数字及的数字及AFAF(或小写或小写afaf)的字母组成,如的字母组成,如0 x1730 x173,0 x3af0 x3af。整整型型常常量量可可以以后后跟跟字字母母l l或或L L表表示示longlong型型(长长整整数数),也也可可以以跟跟u u或或U U表表示示unsignedunsigned整整数数(无无符符号号整整数数),如如以以下下数数是是合合法法的:的:375u375u/无符号整数无符号整数12345UL12345UL/无符号长整数无符号长整数54321L54321L/长整数长整数 13579ul13579ul/无符号长整数无符号长整数3.浮点数常量浮点数常量浮浮
14、点点数数也也称称为为实实型型数数。只只能能以以十十进进制制形形式式表表示示。共有两种表示形式:小数表示法和指数表示法。共有两种表示形式:小数表示法和指数表示法。1.1.小数表示法小数表示法使使用用这这种种表表示示形形式式时时,实实型型常常量量分分为为整整数数部部分分和和小小数数部部分分。其其中中的的一一部部分分可可在在实实际际使使用用时时省省略略,如如10.210.2,.2.2,2.2.等。但整数和小数部分不能同时省略。等。但整数和小数部分不能同时省略。2.2.指数表示法指数表示法也也称称科科学学记记数数法法,指指数数部部分分以以E E或或e e开开始始,而而且且必必须须是是整整数数。如如果果
15、浮浮点点数数采采用用指指数数表表示示法法,则则E E或或e e的的两边都至少要有一位数。如以下数是合法的:两边都至少要有一位数。如以下数是合法的:1.2e201.2e20,-3.4e-2-3.4e-2。4.字符常量与字符串常量字符常量与字符串常量1.字符常量字符常量C+中中的的字字符符常常量量通通常常是是用用单单引引号号括括起起的的一一个个字字符符。在在内内存存中中,字字符符数数据据以以ASCII码码存存储储,如如字字符符a的的ASCII码码为为97。字字符符常常量量包包括括两两类类,一一类类是是可可显显字字符符,如如字字母母、数数字字和和一一些些符符号号、+等等,另另一一类类是是不不可可显显
16、字字符符常常量量,如如ASCII码码为为13的字符表示回车。的字符表示回车。2.转义字符转义字符转义字符是特殊的字符常量,表示时一般以转义转义字符是特殊的字符常量,表示时一般以转义字符字符开始,后跟不同的字符表示不同的特殊字开始,后跟不同的字符表示不同的特殊字符,符,表表2列出了常用的特殊字符。列出了常用的特殊字符。名称符号空字符(null)0换行(newline)n换页(formfeed)f回车(carriage return)r退格(backspace)b响铃(bell)a水平制表(horizontal tab)t垂直制表(vertical tab)v反斜线(backslash)问号(qu
17、estion mark)?单引号(single quote)双引号(double quote)”常用的特殊字符 5.5.字符串常量字符串常量字符串常量是由一对双引号括起来的零个或多个字符序列。字符串常量是由一对双引号括起来的零个或多个字符序列。字字符符串串可可以以写写在在多多行行上上,不不过过在在这这种种情情况况下下必必须须用用反反斜斜线线表示下一行字符是这一行字符的延续。表示下一行字符是这一行字符的延续。字符串常量实际上是一个字符数组,组成数组的字符除显字符串常量实际上是一个字符数组,组成数组的字符除显示给出的外,还包括字符结尾处标识字符串结束的符号示给出的外,还包括字符结尾处标识字符串结束
18、的符号00,所以字符串,所以字符串“abcabc”实际上包含实际上包含4 4个字符:个字符:aa、bb、cc和和00。需要注意的是需要注意的是aa和和“a”a”的区别,的区别,aa是一个字符常是一个字符常量,在内存中占一个字节的存储单元,而量,在内存中占一个字节的存储单元,而“a”a”是一个字符串是一个字符串常量,在内存中占两个字节,除了存储常量,在内存中占两个字节,除了存储aa以外,还要存储以外,还要存储字符串结尾符字符串结尾符00。3.2.4 布尔常量布尔常量布尔常量仅有两个:false(假)和true(真)。枚举常量可以通过建立枚举类型来定义。枚举常量可以通过建立枚举类型来定义。枚枚举举
19、类类型型是是一一种种用用户户自自定定义义数数据据类类型型。在在声声明明枚枚举举类类型型时时,需要把常量的值一一列举出来,形式如下:需要把常量的值一一列举出来,形式如下:enumenum 枚举类型名枚举类型名 常量值常量值1 1,常量值,常量值2 2,常量值,常量值nn;例如声明一个名为例如声明一个名为colorcolor的枚举类型:的枚举类型:enumenum colorRed,Green,Blue,White,Black;colorRed,Green,Blue,White,Black;枚举常量是一种符号常量。枚举常量是一种符号常量。RedRed,GreenGreen等是符号常量,它等是符号常
20、量,它们表示各个枚举值,在内存中表示以整型数。如果没有专门指们表示各个枚举值,在内存中表示以整型数。如果没有专门指定,第一个符号常量的枚举值就是定,第一个符号常量的枚举值就是0 0,其他枚举值依次为,其他枚举值依次为1 1,2 2,33。所以,。所以,C+C+自动给自动给RedRed赋赋0 0,GreenGreen赋赋1 1,等等。,等等。6.枚举常量枚举常量3.1.7 3.1.7 运算符与表达式运算符与表达式参考教材P723.1.8 3.1.8 数据类型转换数据类型转换1.自动类型转换自动类型转换 2.强制类型转换强制类型转换 int i=9;float f1=(float)i/2;/f1的
21、值为4.5float f2=float(i/2);/f2的值为4.0intint i=3,j=2;i=3,j=2;float f=1.5f;float f=1.5f;double d=f+i/j;double d=f+i/j;3.2 3.2 流程控制语句流程控制语句3.2.1 选择语句选择语句if语句语句 switch语句语句 3.2.2 循环语句循环语句 1.while语句语句 2.do while语句语句 3.for语句语句 3.2.3 3.2.3 转向语句转向语句1.goto语句语句 goto语句又称为无条件转向语句 2.continue语句语句 3.break语句语句 break语句又
22、称为跳出语句 4.return语句语句 3.3 3.3 函函 数数例例3.5 3.5 函数的声明与定义。函数的声明与定义。#include#include void void display(chardisplay(char c);c);/函数声明函数声明 void main()void main()display(Adisplay(A););/函数调用函数调用 void void display(chardisplay(char c)c)/函数定义函数定义 coutcoutvalue of character c is:value of character c is:(int)cint)ce
23、ndlendl;3.3.2 3.3.2 函数的形式参数与实际参数函数的形式参数与实际参数例例3.6 3.6 求求3 3个数中的最大者。个数中的最大者。#include#include intint max(intmax(int x,x,intint y,y,intint z)/z)/函数定义,函数定义,x x、y y和和z z为形参为形参 if(yif(y x)x)x=y;x=y;if(zif(z x)x)x=z;x=z;return x;return x;void main()void main()intint a,b,c;a,b,c;coutcoutplease input three i
24、ntegers:;abc;abc;coutcoutMaximum=Maximum=max(amax(a,b,c),b,c)endlendl;/;/函数调用,函数调用,a a、b b和和c c为实参为实参 3.3.3 3.3.3 函数的调用与数据传递形式函数的调用与数据传递形式值传递、地址传递和引用传递。关于引用值传递、地址传递和引用传递。关于引用传递,后面再详细介绍,这里只介绍值传传递,后面再详细介绍,这里只介绍值传递和地址传递。递和地址传递。(1)传值调用传值调用 例例3.7 3.7 传值调用。传值调用。#include#include void void swap(intswap(int
25、x,x,intint y)/y)/形参为普通类型的变量形参为普通类型的变量 coutcoutxtyxtyendlendl;intint temp=x;temp=x;x=y;x=y;y=temp;y=temp;coutcoutxtyxtyendlendl;void main()void main()intint x=3,y=5;x=3,y=5;swap(xswap(x,y);/,y);/实参为变量实参为变量 coutcoutxtyxtyendlendl;运行结果如下:运行结果如下:3 53 5 5 3 3 53 5(2)传地址调用 例3.8 传地址调用。#include void swap(in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+第3章 c+基础 C+ 基础
限制150内