文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>函数参数的传递问题

函数参数的传递问题

时间:2010-11-01  来源:xiayongchun

函数参数的传递问题(一级指针和二级指针) 程序1:void myMalloc(char *s)      {       s = (char *)malloc(100)      }      void main()      {       char *p = NULL;       myMalloc(p);       if(p)       {         free(p);         p = NULL;       }       }      程序2:void myMalloc(char **s)      {        *s = (char *)malloc(100);      }      void main()      {        char *p = NULL;        myMalloc(&p);        if(p)       {         free(p);         p = NULL;       }      } 先看两个简单的程序便于理解    #include <stdio.h>    void fun(int *p)    {     int b = 100;     p = &b;   }   void main()   {    int a  = 10;    int *q = NULL;    q = &a;    printf("%d\n",*q);    fun(q);    printf("%d\n",*q);    return 0;   } //输出地结果是 10               10 解释:void fun(int i)           {             i = 100;           } //退出函数,i值复原     void fun(int *p)   {   *p = 100;   }   void main()   {    int a = 10;    int *q = NULL;    q = &a;    printf("%d\n",*q);    fun(q);    printf("%d\n",*q);    return 0;   } //结果是  10          100 解释:void fun(int *pi)           {             *pi = 100;           } //退出函数,pi指针不变,但是指向的内容发生了变化(这句话应该好好理解)   总结如下 动态内存的传递方法 1,函数返回值传递(注意不要返回局部栈指针) 2,二级指针传递   如果你明白了上面的内容可以访问 http://www.cppblog.com/yearner/archive/2008/05/16/50112.html        
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载