Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371802
  • 博文数量: 47
  • 博客积分: 967
  • 博客等级: 准尉
  • 技术积分: 1290
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-25 16:14
文章分类

全部博文(47)

文章存档

2019年(1)

2014年(1)

2013年(9)

2012年(36)

分类: LINUX

2013-03-23 13:27:42

   简单来说,函数指针就是指向函数的指针,本质是一个指针。指针函数只是说明他是一个返回值为指针的函数,它的本质是一个函数。    这么说比较容易理解,其实我们也可以对比数组指针和指针数组来区分这两个之间的差别。
   函数指针的定义如下:int  (*f) (int x);    //括号的优先级高于‘*’
   指针函数的定义如下:int  *f(int x) ;
   指针函数可以返回指针,下面就是一个返回指针的例子:
 


  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;

  4. int main()
  5. {
  6.     char *ch(char *,char *);
  7.     char str1[]="I am glad to meet you!";
  8.     char str2[]="welcome to daxue!";
  9.     cout << ch(str1,str2) << endl;
  10.     return 0;
  11. }
  12. char *ch(char *str1,char *str2)
  13. {
  14.     int i;
  15.     char *p;
  16.     p=str2;
  17.     if(*str2=='\0')
  18.         exit(-1);
  19.     do
  20.     {
  21.         *str2=*str1;
  22.         str1++;
  23.         str2++;
  24.     }while(*str1!='\0');
  25.     return (p);
  26. }

运行结果如下:

  1. lwp@linux:~/c++$ ./aa zhihan
  2. I am glad to meet you!


阅读(2415) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

lwp2252013-03-25 10:22:55

txgc_wm:char *ch(char *str1,char *str2)
=》其实楼主想实现的就是strcpy的功能,对以上的代码是有问题的。还有很大的改进空间。

恩,是的,但是这个程序我主要就是想说明返回值是一个指针,谢谢你的指正,我会改进的。

回复 | 举报

txgc_wm2013-03-24 22:31:32

char *ch(char *str1,char *str2)
=》其实楼主想实现的就是strcpy的功能,对以上的代码是有问题的。还有很大的改进空间。

lwp2252013-03-24 20:41:12

txgc_wm:这?????

非常抱歉,昨晚由于我的疏忽把代码贴错了,现在已经改正,希望以后多多指正!

回复 | 举报

txgc_wm2013-03-24 13:24:44

这?????