指针&数组&函数指针
来源:互联网 发布:苹果手机壳淘宝店推荐 编辑:程序博客网 时间:2024/04/30 07:43
一维数组 数组名相当于当前类型的指针 type* const &数组名
int array[10];int other[2][5];//内存分布一样array+1;//首元素地址+1*type(4)other+1;//首 &数组名+5*1*type(4);+1相当于数组指针+1
一个数组有 :数组类型 元素类型 数组大小
数组指针
int(*parray)[10]=&array;//数组指针与array 数据类型相同tydef int(INT10)[10];//sizseof =40INT10 intarray;
二维参数 相当于传递数组指针
void foo(int (*array)[10]){}int other[2][10];foo(&array)//&array ->常量数组指针(int(*)[10])void foo(int (*array)[2][10]){}foo(other)//常量指针 other数组指针(int(*)[10]),int*10个元素的数组指针foo(&ohter)&other->常量数组指针(int(*)[2][10])
指针数组
char *keys[100]={"aaa","bbb","ccc"};//能够存放100个指针,与能存放多长字符串无关,存放100个char*的指针,指向char类型,//只读,常量区char keys[100][100];//能够存放100个字符串,长度100;代表字符数组,不是字符串,可读写,栈区
指针数组传参
char **key和char *key[]一样
传入指针的指针,
void SetArrayValue(char *key[],unsigned int index,char *value){ *(key + index) = value;//传入指针的指针}
函数指针
好处是可使用回调函数
int foo(int one,int two){return 0;}void *pfoo=&foo;//函数指针 函数类型pfoo(10,10);//调用 调用时和普通调用一样
函数类型:返回值 参数列表(类型,个数,顺序)
int(*pfoo)(int,int)=foo;//函数类型
void foo2(){}void(*pfoo2)()=&foo2;typedef int FOOTYPE(int,int);//可当参数使用FOOTYPE* pfoo=foo;void foo3(FOOTYPE *func){}foo3(pfoo);
回调error
typedef void (FUNCERROR)(int)void PrintError(int code){ printf("Error:%d\r\n",code);}void SetValue(char *array[],char *value,FUNCERROR*error)if(array==NULL) error(100)
指针,使用场合
作为参数
动态分配内存
//指针的指针void foo1(int **array,unsigned int size){*array=malloc(size *sizeof(int));}int *array=NULL;foo1(&array,100);free(array);
数组类型:元素类型+元素个数
一维数组:
&数组名:数组指针,数组类型*,tpye(name)[size]
数组名:当前元素地址,类型是元素的指针type*
二维数组:
&数组名:数组指针,type(name)[一维][二维]
数组名:元素地址;类型:数组指针:type(name)[二维size]
指针数组:
数组名:首元素地址;类型:type(*)*
&数组名:数组指针:type(*)(name)[size]
使用场合:参数传递:降维传递
函数指针:
返回值(name)(参数列表)
0 0
- 指针,指针数组,数组指针,函数指针
- 函数指针指针数组
- 数组指针、函数指针
- 指针&数组&函数指针
- 函数指针数组指针!
- 指针数组,数组指针,函数指针,指针函数,多级指针
- 函数指针/函数指针数组
- 函数指针,函数指针数组
- 函数指针、指针数组与数组指针
- 解析 指针数组,数组指针,函数指针
- 函数指针、数组指针、指针数组
- 函数指针,数组指针,指针数组
- C++指针数组、数组指针、函数指针
- 函数指针,指针数组和数组指针
- 数组指针,指针数组和函数指针
- 指针数组 数组指针 函数指针 函数指针数组
- 理解数组指针、指针数组、函数指针、函数指针数组
- 函数指针,函数指针数组,函数指针数组的指针
- 解决jQuery版本冲突
- UNIX网络编程读书笔记:基本SCTP套接口编程
- oracle 导入表数据结构,数据
- 显示器驱动程序已停止响应 并且已成功恢复 这是什么原因
- 部署nexus
- 指针&数组&函数指针
- node.js下redis简单操作实例
- harbor单机安装
- pom文件检错级别
- CPU指令集是什么东西
- HDUOJ-3047 Zjinu Stadium
- onInterceptTouchEvent、onTouchEvent、onTouch
- Git(3)/本地仓库
- google zxing作为二维码生成工具