已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 数组 指针与字 符串 C+语言程序设计 1 前一页 休息 本章主要内容 l数组 l指针 l动态存储分配 l指针与数组 l指针与函数 l字符串 2 前一页 休息 数组的概念 数组是具有一定顺序关系的若干相同 类型变量的集合体,组成数组的变量称 为该数组的元素。 数组属于构造类型。 数 组 3 前一页 休息 一维数组的声明与引 用 l一维数组的声明 类型说明符 数组名 常量表达式 ; 例如: int a10; 表示 a 为整型数组,有10个元素:a0.a9 l引用 必须先声明,后使用。 只能逐个引用数组元素,而不能一次 引用整个数组 例如:a0=a5+a7-a2*3 数组名的构成方法与一般变量名相同。 数 组 4 前一页 休息 例6. 1 一维数组的声明 与引用 #include void main( ) i nt A10,B10; i nt i; f or(i=0;i void main(void) char key = a,c,b,a,d; char c; int ques = 0, numques = 5, numcorrect = 0; cout void RowSum(int A 4, int nrow) int sum; for (int i = 0; i #include “Location.h“ Location:Location( ) X=Y=0; cout void main( ) int *i_pointer;/声明int型指针 i_pointer int i;/声明int型数i i_pointer=/取i的地址赋给 i_pointer i=10;/int型数赋初值 coutai; coutai; coutai; cout void main( ) int line1 =1,0,0; /声明 数组,矩阵的第一行 int line2 =0,1,0; /声明 数组,矩阵的第二行 int line3 =0,0,1; /声明 数组,矩阵的第三行 int *p_line3;/声明整型 指针数组 p_line0=line1; /初始化指 针数组元素 p_line1=line2; p_line2=line3; 指 针 46 /输出单位矩阵 cout void main( ) int array223=11,12,13,21,22,23; for(int i=0;i int main( ) int *pt_int; float *pt_float; int pig = 7, dog = 27; float x = 1.2345, y = 32.14; void *general; 指 针 52 pt_int = *pt_int += dog; cout const int N=6; void print(const int *p,int n); void main( ) int arrayN; for(int i=0;iarrayi; print(array,N); 指 针 55 void print(const int *p, int n) cout成员名 指 针 57 前一页 休息 例6-13 对象指针应用 举例 int main( ) Point A(5,10); Point *ptr; ptr= int x; x=ptr-GetX( ); cout struct date int month; int day; int year; ; 动态存储分配 61 int main( ) int index, *point1, *point2; point1 = *point1 = 77; point2 = new int; *point2 = 173; cout month = 10; date_point-day = 18; date_point-year = 1938; cout month day year class Point public: Point( ) X=Y=0; cout class Point /类的声明同例6-16,略 ; int main( ) Point *Ptr=new Point2; /创建对象数组 Ptr0.Move(5,10); /通过指针访问数组元素的成 员 Ptr1.Move(15,20); /通过指针访问数组元素的成 员 cout void main( ) float (*cp)98; int i,j,k; cp = new float898; for (i=0; i 和 动态存储分配 74 前一页 休息 动态内存释放函数 lvoid free( void *memblock ); 参数memblock: 指针,指向需释放的 内存。 返回值:无 头文件: 和 动态存储分配 75 前一页 休息 以指针作为函数参数以指针作为函数参数 l以地址方式传递数据,可以用来返回 函数处理结果。 l实参是数组名时形参可以是指针。 指针与函数 76 前一页 休息 例6-18 指针做函数参数指针做函数参数 举例举例 #include #include“Point.h“ /Point 类声明略 void f(Point *a, int n); int main( ) Point *pa2; /动态生成对象,其地址赋给指针数组元素 pa0=new Point(1,3); pa1=new Point(2,4); f(pa,2); delete pa0; delete pa1; return 0; 指针与函数 77 void f(Point *a, int n) /实参是指针数组,形参应使用二级指针 /也可以写成 void f(Point *a , int n) for(int i=0;iGetX( ) void splitfloat(float x, int *intpart, float *fracpart) /形参intpart、 fracpart是指针 *intpart = int(x); / 取x的整数部分 *fracpart = x - *intpart; /取x的小数部 分 指针与函数 79 void main(void) int i, n; float x, f; cout x; splitfloat(x, /变量地址 做实参 cout #include void Array_Ptr(long *P, int n) int i; cout void print_stuff(float data_to_ignore); void print_message(float list_this_data); void print_float(float data_to_print); void (*function_pointer)(float); int main( ) float pi = 3.14159; float two_pi = 2.0 * pi; 指针与函数 87 print_stuff(pi); function_pointer = print_stuff; function_pointer(pi); function_pointer = print_message; function_pointer(two_pi); function_pointer(13.0); function_pointer = print_float; function_pointer(pi); print_float(pi); return 0; 88 void print_stuff(float data_to_ignore) printf(“This is the print stuff function.n“); void print_message(float list_this_data) printf(“The data to be listed is %fn“, list_this_data); void print_float(float data_to_print) printf(“The data to be printed is %fn“, data_to_print); 89 运行结果: This is the print stuff function. This is the print stuff function. The data to be listed is 6.283180 The data to be listed is 13.000000 The data to be printed is 3.141590 The data to be printed is 3.141590 90 前一页 休息 用字符数组存储和处理 字符串 字符数组的声明和引用 例:static char str8=112,114,111,103,114,97,109,0; static char str8=p,r,o,g,r,a,m,0; static char str8=“program“; static char str =“program“; 字符串 字符串常量,例如:“china“ 没有字符串变量,用字符数组来存放字符 串 字符串以0为结束标志 字符数组的初始化 例例6-196-19例例6-206-20 字符串 91 前一页 休息 输出一个字符串 #include int main( ) static char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i int main( ) static char diamond 5= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,*; int i,j; for (i=0;ip1; 正确的: p1=“abc“; p2=a; cinp2; 字符串 94 前一页 休息 字符串的输入/输出 l方法 逐个字符输入输出 将整个字符串一次输入或输出 例:char c =“China“; coutstr1str2str3; 运行时输入数据: How are you? 内存中变量状态如下: str1: H o w 0 str2: a r e 0 str3: y o u ? 0 96 若改为: static char str13; cinstr; 运行时输入数据: How are you? 内存中变量 str 内容如下: str: H o w 0 97 前一页 休息 整行输入字符串 lcin.getline(字符数组名St, 字符个数N, 结束符 ); 功能:一次连续读入多个字符(可以包括空格), 直到读满N个,或遇到指定的结束符(缺省为n)。读 入的字符串存放于字符数组St中。读取但不存储结束符 。 lcin.get(字符数组名St, 字符个数N, 结束符); 功能:一次连续读入多个字符(可以包括空格), 直到读满N个,或遇到指定的结束符(缺省为n)。读 入的字符串存放于字符数组St中。 既不读取也不存储结束符。 字符串 98 前一页 休息 例6-22 整行输入字符串 举例 #include void main (void) char city80; char state80; int i; for (i = 0; i 字符串 100 前一页 休息 例6.23 string类应用 举例 #include #include using namespace std ; void trueFalse(int x) cout (x? “True“: “False“) endl; 字符串 101 void main( ) string S1=“DEF“, S2=“123“; char CP1 =“ABC“; char CP2 =“DEF“; cout “S1 is “ S1 endl; cout “S2 is “ S2 endl; cout“length of S2:“S2.len
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CBJ 9103-2024草本白酒
- 产科中孕期唐氏筛查联合NIPT的临床意义
- 气管切开意外拔管应急预案与处理程序
- 交叉设计在生物等效性试验中的缓控释制剂考量
- 初三英语介词辨析练习题及答案含答案
- 二甲双胍对糖尿病患者牙周炎的改善作用
- 静脉输液一针见血的方法与技巧
- 重症肌无力(Ⅲ型)护理原则课件
- 主动脉瓣狭窄合并肺高压病理生理
- 临床路径管理下的科室成本绩效联动实践
- 知道智慧树军事理论(云南民族大学)满分测试答案
- 2025年清华金融系考试题及答案
- 消化道出血病人护理
- 药品委托研究管理办法
- 危险化学品材质相溶性矩阵表
- 武理工工程热力学与传热学课件第17章 辐射换热
- 传感器与检测技术 课件 项目5 电涡流传感器
- 油库设备检修管理制度
- T/SHBX 003-2021全生物降解购物袋
- 《重症监护病房的临终关怀和姑息治疗指南》解读
- 2025装配式混凝土居住建筑首个标准层段联合验收规程
评论
0/150
提交评论