您的位置:首页 > 编程语言

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

2014-08-01 17:40 393 查看
动态分配内存:头文件 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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: