01
2014
08

标C编程笔记day06 动态分配内存、函数指针、可变长度参数

动态分配内存:头文件 stdlib.h

    malloc:分配内存

    calloc:分配内存,并清零

    realloc:调整已分配的内存块大小

    示例:

        int *p=(int *) malloc(3*sizeof(int));//分配内存,成功返回首地址,失败返回NULL

        free(p);p=NULL;//释放分配的内存,并修改指针的值,避免出现野指针(指向一个地址,但地址已被回收)

const 与指针:

    const int *p; //指针可变,指针对应的数据不可修改

    int * const p; //指针不可变,指针对应的数据可修改

    const int * const p; //指针不可变,指针对应的数据不可修改


指向函数的指针:

    int add(int a,int b){return a+b;}

    int mul(int a,int b){return a*b;}

    int (*a) (int ,int )=NULL; //定义函数类型指针

    int sum;

    a=add;

    sum=a(3,4);//7

    a=mul;

    sum=a(3,4);//12

    typedef int (*pa)(int,int) pa1,pa2; //定义函数类型指针

    pa1=add;

    pa2=mul;

    sum=pa1(3,4);//7

    sum=pa2(3,4);//12


可变长度参数的使用:头文件 stdarg.h

    int max(int count,...)//count为后面参数的个数,不确定多少个

    {

        va_list v;

        va_start(v,count);

        for(int i=0;i<count;i++)

        {

            int argi=va_arg(v,int);//取出各参数的值

        }

        va_end(v);

    }




版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。