文档详情

c语言第八章(颜辉).ppt

发布:2017-07-06约6.38千字共88页下载文档
文本预览下载声明
第八章 指针;8.1 指针;变量;8.1.1 指针变量的定义;;8.1.2 指针的基本操作;a;b;a;a;2、赋值=;输出: 10, 100;8.1.3 指针变量的初始化;8.1.3 指针变量的初始化;8.1.4 指针作为函数的参数;swap2(int *p1, int *p2) { int t; t = *p1; *p1 = *p2; *p2 = t; };swap3(int *p1, int *p2) { int *p; p = p1; p1 = p2; p2 = p; };swap2(int *p1, int *p2) { int t; t = *p1; *p1 = *p2; *p2 = t; };例8.6-1 指针作为函数的参数;例8.6-2;例8.6-3;例7-9;例7-9;例8-7;例8-7;8.2 指针和数组;8.2.1 指针、数组、地址间的关系;int *ap; ap = a[0]; ap 指向数组a的首元素;a[0];1、数组元素作为函数实参 函数形参为变量 (与变量作为函数实参相同,值传递) 2、数组名作为函数参数 由于数组名是指针常量,相当于指针作为函数的参数 数组名做为实参 形参是指针变量(数组);float average( float *array) { int i; float aver,sum=0; for(i=0; i10; i++) sum+=array[i]; aver=sum/10; return(aver); } ;float average( float *array) { int i; float aver,sum=0; for(i=0; i10; i++) sum+=array[i]; aver=sum/10; return(aver); } ;(3) 若在函数中只处理部分数组元素,用参数指定个数;(4) 数组名做为函数的参数,在函数调用时,将实参数组首元素的地址传给形参(指针变量),因此,形参也指向实参数组的首元素。如果改变形参所指向单元的值,就是改变实参数组首元素的值。 或:形参数组和实参数组共用同一段存贮空间,如果形参数组中元素的值发生变化,实参数组中元素的值也同时发生变化。;例 8.9 冒泡法排序;i=1; 9 8 5 4 6 0 i=1 j=0: 8 9 5 4 6 0 j=1: 8 5 9 4 6 0 j=2: 8 5 4 9 6 0 j=3: 8 5 4 6 9 0 j=4: 8 5 4 6 0 9;main() { int i, a[10]; ; for(i=0; i10; i++) scanf(%d, a[i]); sort(a, 10); for(i=0; i10; i++) printf(%d , a[i]); printf(\n); };8.3 指针和字符串;8.3.1 常用的字符串处理函数;⑵ 输入 scanf(%s, str); 注意: ① 输入参数使用数组名,不加地址符。 ② 遇到回车或空格,输入结束,并自动在末尾加‘\0’。;③ 输入多个用空格分隔的字符串 char s1[20], s2[20], s3[20]; scanf(%s%s%s, s1, s2, s3);;2、字符串输出函数puts;输出:Hello World! ; static char str[20]; gets(str); 字符数组名;gets(str) 与 scanf(“%s”, str) 的区别:;strcpy(str1, str2); 将字符串 str2 复制到 str1 中 static char str1[20]; static char str2[20] = “happy”;;# include “stdio.h” # include “string.h” main( ) { char str1[20], str2[20]; gets(str2); strcpy(str1,str2); puts(str1); }; strcat(str1, str2); 连接两个字符串str1和str2, 并将
显示全部
相似文档