黑马程序员技术交流社区

标题: C语言学习笔记之指针函数 [打印本页]

作者: chunhuayun    时间: 2015-9-28 16:51
标题: C语言学习笔记之指针函数
1.返回指针的函数称为指针函数

2.指针函数的定义
一般形式为:
类型说明符 *函数名(形参表){
/*函数体*/
}
例如:
  1. //返回两个数中最大数的地址
  2. int *sum(int a, int b){
  3.     return a > b ? &a : &b;
  4. }

  5. int *sum2(int *a, int *b){
  6.     return *a > *b ? a : b;
  7. }

  8. int main(int argc, const char * argv[])
  9. {

  10.     int a = 10,b = 9;
  11.     //传值给函数
  12.     printf("Address of a = %p\n", &a);
  13.     printf("Address of b = %p\n", &b);
  14.     printf("传值给函数Address of the biger = %p\n", sum(a, b));
  15.     //传地址给函数
  16.     printf("传地址给函数Address of the biger = %p\n", sum2(&a, &b));
  17.     return 0;
  18. }
复制代码

打印结果:
Addressof a = 0x7fff5fbff90c
Addressof b = 0x7fff5fbff908
传值给函数Address ofthe biger = 0x7fff5fbff8dc
传地址给函数Address ofthe biger = 0x7fff5fbff90c

分析:由打印结果可知实参和形参完全是两码事,在内存中占用的地址都不一样。


作者: 754051698    时间: 2015-9-28 19:22
中介的好
作者: tz19900926    时间: 2015-9-28 19:48
指针函数,函数指针,一致很晕
作者: hailiqh    时间: 2015-9-28 20:21
你有MAC系统吗
作者: chunhuayun    时间: 2015-9-28 22:08
tz19900926 发表于 2015-9-28 19:48
指针函数,函数指针,一致很晕

可以这样记:【指针函数】就是【返回值是指针的函数】,【函数指针】就是【指向函数的指针】。这样是不是就清楚了呢
作者: chunhuayun    时间: 2015-9-28 22:12
hailiqh 发表于 2015-9-28 20:21
你有MAC系统吗

装得黑苹果10.9.5,我的是acer4750
作者: hailiqh    时间: 2015-9-29 08:24
chunhuayun 发表于 2015-9-28 22:12
装得黑苹果10.9.5,我的是acer4750

挺好,我也试试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2