预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共165页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第13章C++基础13.1C++概述C++是从C语言的基础上发展而来的 C语言编写的程序可以在C++下使用 C语言源程序文件的扩展名为.C C++源程序文件的扩展名一般为.cpp C与C++的不兼容性之处:(1)保留字(2)数据描述C++中若全局变量在定义变量的模块之外使用,即其它模块要使用它,则必须先使用extern说明符对该变量进行声明。 C语言中void类型的指针可以赋值给任何类型的指针,C++中不能。 定义:inta,*p_int; C语言中:void*p_void=&a; p_int=p_void; C++中:p_int=(int*)p_void;(使用强制类型转换)(3)C与C++在函数上的不同:13.2C++对C的扩充13.2.1C++的输入输出(1)用标准输出流cout进行输出cout允许使用多个插入运算符“<<”将多个输出项插入到输出流中。 插入运算符<<的结合方向是自左向右。 例如: inta=15,b=32; cout<<”a=”<<a<<’\n’<<”b=”<<b<<’\n’; 输出结果为: a=15 b=32 在iostream.h中,定义了一个与’\n’相同的控制字符endl。 cout<<”a=”<<a<<endl<<”b=”<<b<<endl;cout通过控制符setw来设置。 格式为:setw(n) 表明要为后续的一个输出项预留n列。如输出项长度不够n,则数据右对齐;如超过n列,则按实际长度输出。 例如: cout<<”a=”<<setw(4)<<a<<”b=”<<b<<endl<<”a+b=”<<a+b<<endl <<”x=”<<setw(3)<<x<<endl; 输出结果为: a=□□□5b=10//□代表空格 a+b=15 x=3.14159(2)用标准输入流cin进行输入例13.1流cin与cout的使用带参数(定义在iostream.h中)与带参数的格式控制操作符(定义在iomanip.h中):13.2.2C++的行注释13.2.3const常量定义与使用const用于修饰指针时,有三种组合: (1)指向常量的指针,定义格式为: const类型标识符*变量名=常量; 例如: constchar*str=”China”; 或charconst*str=”China”; str是一个指向常量的指针,称为常量指针,不能改变所指常量的值。 例如:str[0]=’S’;重新赋值不允许 但指针str本身不是一个常量,而是一个变量,可以指向另一个常量。 例如:str=”Changsha”;(2)指针为常量,称为指针常量,定义格式为: 类型标识符*const指针变量名=常量; 例如: char*conststr=”China”; 不能写为:charconst*str=”China”; str是一个常量,不能修改str的值。 例:str=”Changsha”;在C++中是非法的。 但str没有定义为指向常量,其所指的值可以改变。 例如:str[0]=’S’;是合法的。(3)指向常量的常指针,指针和它所指的对象都为常量 const类型标识符*const变量名=常量; 例如:constchar*conststr=”China”; 指针str不能指向”China”以外的字符串,也不能改变指针所指的对象 例如:下面的操作都是错误的。 str=”Changsha”; str[2]=’A’;13.2.4局部变量的定义与全局变量作用域运算符例13.4输入一个班学生的C语言成绩(最多40人),求班平均成绩(2)全局变量作用域运算符:: 例13.5变量作用域示例。 include<stdio.h> inta=10; main() {floata=3.14; printf(“a=%f\n”,a); } 输出结果为:3.140000 C语言规定:局部变量与全局变量同名时,在局部变量作用域内,全局变量被屏蔽。13.2.5变量的引用在使用引用时,应注意以下几个方面: ①创建一个引用时必须将其初始化成对某一具体变量或常量的引用; ②程序中不能改变引用对象,即不能改变成对另一变量或常量的引用; ③必须确保引用是和一个合法的存储单元相连; ④对常量的别名引用必须是const类型的引用。(2)引用作为函数参数①值传递②传递变量的指针③采用引用作为函数参数(3)引用作为函数的返回值13.2.6函数重载例如:求两数之和的函数 intSum(intn,intm); 正确的重载: floatSum(floatn,floatm);//参数类型不同,可以重载 intSum(intn,intm,intp);//参数个数不同,可以重载 错误的函数重载: floatSum(intn,intm);//仅返回类型不同,不能重载