《C语言程序设计》第5章指针.ppt
文本预览下载声明
第五章 指 针Pointer 5.1 指针的基本概念 ⒈内存、地址、指针 (Memory ,Address, Pointer) ⒉指针的说明 ⒊指针对变量的引用 举例: 【例5-1】 5。指针的运算 指针赋值运算 5.2 指针与数值型数组 举例:打印数组中的奇数。 2.指针与二维数组 ⑷数组名地址的两级管理 ⑹数组名表示数组元素 举例: 在数组a中查找输入的数,输出行列位置。 5.3 指针与字符串(字符数组) 举例:将字符串中的大写字母转化对应的小写字母。 举例:将无符号的八进制字符串转换为十进制整数。 5.4 指 针 数 组和指向指针的指针 指针数组的应用举例 ⑵指针数组与多字符串 指向指针的指针 ⒉指向指针的指针的应用 ⑵用于处理多字符串 指针的类型问题 指向void类型的指针 5.5 程序代码风格 表达式及语句风格 /* example 5-10 通过指针数组访问二维字符数组 */ #include stdio.h #include string.h void main(void) { char strName[5][10],*strP[5],*strTemp = NULL; int i,j; for(i=0; i5; i++) { strP[i] = strName[i];/* 指针数组的各个元素指向字符数组的对应行 */ gets(strP[i]); } for(i=0; i4; i++) for(j=i+1; j5; j++) if(strcmp(strP[i],strP[j]) 0) /* 比较 */ { 【例5-10】对存放于二维字符数组中的五个字符串按由小到大排序输出。 strTemp = strP[i]; strP[i] = strP[j]; strP[j] = strTemp; } printf(The result after sort:\n); for(i=0; i5; i++) puts(strP[i]); /* 输出 */ } 通过指针数组构成的菜单,执行DOS命令。 #include stdio.h void main(void ) {char *command [ ] = {“dir”, “time”, “date”}, ch ; for ( ; ; ) { do{ printf (“1: directory\n”) ; printf (“2:set time\n” ) ; printf (“3:set date\n”) ; printf (“4:quit\n”) ; printf (\nselection:”) ; ch =getchar( ) ; printf (“\n”) ; } while ((ch’1’)||ch’4’)) ; if (ch==’4’) break; system (command[ch-‘1’]) ; } } 内层循环输入选项 外层循环根据选项执行命令 执行系统命令函数,如:system(“dir”); \0 e t a d \0 e m i t \0 r i d command[2] command[1] command[0] ‘3’-‘1’ 2 【例5-11】输入0到6的数字分别代表周日到周六,输出英文名称。 /* example 5-11 字符型指针数组与字符串常量 */ #include stdio.h void main(void) { char *strDay[7] = {“Sunday”,“Monday”,“Tuesday”, Wednesday, Thursday,Friday,Saturday}; int iDay; scanf(%d,iDay); if(iDay = 0 iDay = 6) { puts(strDay[iDay]); } else { puts(Input error!); } } 如果指针变量的内容存放其它指针的地址,称该指针为指向指 针的指针
显示全部