西华师范大学 数学与信息学院 本单元授课内容 ●返回值为地址的函数 ●指针型的参数 ●指向函数的指针 ●指向函数的指针的数组 ●指向指针的指针 ●动态存储分配与内存管理 ●命令行参数
! "#$%&'()$*+ ,-.
西华师范大学 数学与信息学院 、返回值为地址的函数 ●通常,函数用返回值的形式为调用程序提供一个计 算结果。但有时需要返回值是一个地址。 ●在说明返回值为地址的函数时,用指针类型说明 符 char Strchr(char *string, int c) char strstr(char *string1, char string2 前者的功能为在字符串 string中查找字符c,如果 string中有字符c,则返回字符c的地址,否则返回 NULL。 ●后者的功能为在字符串 string1中查找子字符串 string2,如果 string1中包含有 string2,则返回 string2在 string1中的地址,否则返回空指针值 NULL。 00g
!"# $%&'"# () *+ ,-!.(/ 012.(3 0.( 4.( 54 6+ ,-!.(/ 0127.(/ 3 089 4 ! 0 54:$%
西华师范大学 数学与信息学院 例8-1 ●将表示月份的数值(12)转换成对应 的英文月份名称。 ●算法分析: 首先说明一个字符串数组 month 用来存放月份的英文名称。 在转换时只须按下标值返回一个字 符串的地址即可。
/0123 45678 9:23;?&@ ABCDEFGHI! JK$L239:;<= M45NOPQRSEFG HITU=
西华师范大学 数学与信息学院 c0801子函数 /*函数 month name0:将月份数值转换为英文名称* #include <dos. h) char *month name (int n) I static char *month[= [Illegal month January, February, March,April, May June,July, August,"Septeml ber October, "November/, dEcember return (n)=1&& n(=12)?month [n]: month[]
;?@AB?C=DEFG HIJKLMNOPYZA[ SAC\W?@AB?C=DER?@ ?F ]WY@C@RSWSAC\W?@A^_` ]WWabTTDcCTW=>?@Aad aeC?UC\fadWgDh\UC\fadWaiC\SAadWajk\RTadWaiCfad aeU?DadWaeUTfadWajUcUY@adWalDk@D=hD\ad mS@>hD\d n>oD=hD\d pDSD=hD\ qr \D@U\?WE?[`sWttW?X`suFv=>?@A^?_G=>?@A^w_r q
西华师范大学 数学与信息学院 c0801c主函数 void print date(struct date *d I printf(%s %d, %d", month name(d->da mon d->da day, d->da year):) main struct date today getdate(&today) / today da year= 1999 today. da mon=12 today. da day=29: * print date (&today
]WW k\R?@xEayY yVdWyVad=>?@AB?C=DEVz[VCB=>?Fd !!! " "!