正在加载图片...
第6单元指针 114 kyp tmp 通过地址直接对主函数中原来的变量x和y进行操作,完成了交换这两个变量的值的任务 在函数swap()执行完毕后,即使释放其局部变量tmp和指针参数xp、y占用的存储也不 会影响到主函数中变量x和y的新内容 般来说,函数可以用返回值的形式为调用程序提供一个计算结果。在前面的各单元中 出现的函数返回值类型大都是int、 double之类的简单类型。其实,也可以将一个地址数据 (如变量、数组和函数的地址,指针变量的值等)作为函数的返回值。在声明返回值为地址的 函数时,要使用指针类型说明符,例如 char *strchr(char *string, int c) char *strstr(char *stringl, char *string2) 这是两个用于字符串处理的库函数,其返回值均为地址。前者的功能为在字符串 string 中查找字符c,如果字符串 string中有字符c出现,则返回字符c的地址,否则返回NUI 后者的功能为在字符串 stringl中查找子字符串 string2,如果字符串 stringl中包含有子字符串 string2,则返回sing2在 string中的地址(即 string2中第一个字符的地址)否则返回空指针 值N 例6-2将表示月份的数值(1-12)转换成对应的英文月份名称。 算法:首先声明一个字符串数组 month,用来存放月份的英文名称。在转换时只须 按下标值返回一个字符串的地址即可。 程序 / Example6-2:将月份数值转换为相应的英文名称 char month static char *month[ Illegal month",∥/月份值错 January /一月 February /二月 March 三月 /四月 /五月 /六月 July /七月 /八月 /九月 /十月 /十一月第 6 单元 指针 - 114 - *xp = *yp; *yp = tmp; 通过地址直接对主函数中原来的变量 x 和 y 进行操作, 完成了交换这两个变量的值的任务。 在函数 swap()执行完毕后,即使释放其局部变量 tmp 和指针参数 xp、yp 占用的存储也不 会影响到主函数中变量 x 和 y 的新内容。 一般来说, 函数可以用返回值的形式为调用程序提供一个计算结果。在前面的各单元中 出现的函数返回值类型大都是 int、double 之类的简单类型。其实,也可以将一个地址数据 (如变量、数组和函数的地址, 指针变量的值等)作为函数的返回值。在声明返回值为地址的 函数时, 要使用指针类型说明符, 例如 char *strchr(char *string, int c); char *strstr(char *string1, char *string2); 这是两个用于字符串处理的库函数,其返回值均为地址。前者的功能为在字符串 string 中查找字符 c,如果字符串 string 中有字符 c 出现, 则返回字符 c 的地址, 否则返回 NULL。 后者的功能为在字符串 string1 中查找子字符串 string2,如果字符串 string1 中包含有子字符串 string2, 则返回 string2 在 string1 中的地址(即 string2 中第一个字符的地址), 否则返回空指针 值 NULL。 [例 6-2] 将表示月份的数值(1−12)转换成对应的英文月份名称。 算 法:首先声明一个字符串数组 month,用来存放月份的英文名称。在转换时只须 按下标值返回一个字符串的地址即可。 程 序: // Example 6-2:将月份数值转换为相应的英文名称 char *month_name(int n) { static char *month[]= { "Illegal month", // 月份值错 "January", // 一月 "February", // 二月 "March", // 三月 "April", // 四月 "May", // 五月 "June", // 六月 "July", // 七月 "August", // 八月 "September", // 九月 "October", // 十月 "November", // 十一月
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有