




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期末说课稿-2025-2026学年中职基础课-拓展模块-教科版(2021)-(英语)-52
- 2025成都市房地产交易代理服务版合同
- 2025二手房屋买卖定金合同模板
- 随州事业单位笔试真题2025
- 2025年中国国际贸易中合同风险与防范策略研究
- 印刷厂员工调岗补贴管理规定
- 2025年签订合同的重点留意事项盘点
- 郴州事业单位笔试真题2025
- 化肥厂质检设备更新规章
- 化肥厂车间通风检查制度
- (一检)泉州市2026届高三高中毕业班质量监测(一)数学试卷(含标准答案)
- 2025年福建省榕圣建设发展有限公司项目招聘12人笔试参考题库附带答案详解
- 矿山设备检修安全培训课件
- 2025-2030数据安全合规审计服务市场爆发及等保测评机构并购价值评估
- 纤维转盘滤布滤池运行维护技术说明
- 2025至2030中国无烟产品行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国华电集团招聘面试题解析及备考建议手册
- 2025年机器人面试题及答案解析
- 高三第一次月考总结主题班会课件
- 参考活动2 善待身边的人教学设计-2025-2026学年初中综合实践活动苏少版七年级下册-苏少版
- 2025年度江苏省档案管理及资料员基础试题库和答案
评论
0/150
提交评论